Chiloh

Chiloh Wei

一个尝试理解世界,理解自己的人
jike
twitter

HSTS と全サイト HTTPS

昨日、ブログの証明書が期限切れになりました。証明書を更新する際に、MySSLウェブサイトでサイトのセキュリティ状況をチェックしました。HSTS が有効になっていないため、A の評価しか得られず、A + にするためにブログに HSTS を追加し、全サイトで HTTPS を有効にしました。

Nginx で HSTS を有効にする#

HSTS(HTTP Strict Transport Security)は、インターネットエンジニアリングタスクフォースによって公開されたインターネットセキュリティポリシーメカニズムのセットです。その主な目的は次のとおりです:

  • クライアント(ブラウザなど)に HTTPS を使用してサーバーとの接続を強制する
  • ウェブサイトを保護し、セッションハイジャックのリスクを減らす

有効にする方法は非常に簡単です。lnmp でデプロイされたウェブサイトを例に説明します。まず、nginx のサイトの設定ディレクトリに移動します:

cd /usr/local/nginx/conf/

次に、nginx ディレクトリの中でサイトの設定ファイルdomain.com.confを開き、Server 443 の下に次の行を追加します:

# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

その後、チェックを行うと、評価が A + に変わっていることがわかります:

HSTS

全サイト HTTPS を有効にする#

以前に一部の全サイト HTTPS の作業を行っていたため、今回は補完と改善のみを行います。詳細な内容はインターネットで検索してください。

  1. Typecho の管理画面にログインし、設定→基本設定→サイトアドレスに移動し、https のドメインに変更します。
  2. Typecho のサイトのルートディレクトリにある config.inc.php ファイルを編集し、次の行を追加します:
/** HTTPSを有効にする */
define('__TYPECHO_SECURE__',true);
  1. テーマフォルダ内の comments.php ファイルを編集し、$this->commentUrl()を次のように置き換えます:
echo str_replace("http","https",$this->commentUrl());
  1. サイトで使用されている添付ファイルの URL を https に更新し、以下の SQL データベース操作を実行します。domain.com はサイトのドメインです:
UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'http://domain.com','https://domain.com');
  1. ウェブサーバー(Nginx)を使用して、80 ポート(HTTP)を 443 ポート(HTTPS)にリダイレクトし、全サイトで HTTPS を強制します。

  2. 最後に、Chrome ブラウザを開いて F12 を押すと、「This page is secure (valid HTTPS)」というメッセージが表示されます。

HTTPS

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。