CloudFlareの無料プランで個人サイトをHTTPS化する

Google Cloud Storage(GCS)記事の派生記事。これまでメインサイトはLet’s Encryptを使用していたけど、GCSを独自ドメインかつCloudFlareのHTTPSで運用することにしたので、同じようにメインサイトもCloudFlareでHTTPS化する。

なおCloudFlareの初期登録とかについては割愛し、ここでは基本的にCrypto設定について記載する。

SSL:Full (strict)

SSL設定は一番厳格なやつ。これで独自ドメイン設定したGCSとの通信も問題ないこと確認済。なおそれぞれの意味は以下のとおり(超勝手な意訳)。

  • Off: HTTPS使わない
  • Flexible: サイト閲覧者とCloudFlare間はHTTPSだけど、CloudFlareとサーバ間はHTTP
  • Full: 全てHTTPSだけど、CloudFlareとサーバ間の証明書はチェックしない(オレオレ可)
  • Full (strict): 全てHTTPSだし証明書もチェックする(オレオレ不可)

Origin Certificates

サーバに登録するプライベート鍵とCSRを生成する。既に他の認証局で登録していたら不要。作成する場合、まずは「Create Certificate」ボタンをクリックする。

基本デフォルトのままでOK。暗号方式やドメイン範囲、証明書の有効期間(最長15年)を変えたい場合は変更する。問題なければ「Next」をクリック。

次の画面で、「Origin Certificate」と「Private key」に表示されている文字列をそれぞれ以下のファイルに保存し、サーバにアップロードする。なおファイル名(拡張子以外)は何でもOK。

  • Origin Certificate: yusukesakai.com.pem
  • Private key: yusukesakai.com.key

アップロード後、ファイルを読み込ませるためにWebサーバの設定を修正する。このサイトで使用しているNginxの場合はこんな感じ。

## サイトのSSL証明書
ssl_certificate /etc/ssl/yusukesakai.com.pem;
ssl_certificate_key /etc/ssl/yusukesakai.com.key;

修正したらサービスの再起動を忘れずに。

Always Use HTTPS:On

強制HTTPSを有効化し、HTTPアクセスもHTTPSにリダイレクトする。

HTTP Strict Transport Security (HSTS):On

HSTSの有効化。基本全部オン(雑)。

設定について少し補足すると

  • Enable HSTS: HSTSを有効化
  • Max Age Header: HSTSヘッダをブラウザにキャッシュさせる期間
  • Apply HSTS policy to subdomains: サブドメインを含めるか
  • Preload: 初回アクセスからHTTPSにするか
  • No-Sniff Header: 悪意あるコードの埋め込み予防

Minimum TLS Version:TLS 1.2

最近のブラウザならTLS 1.2くらいサポートしてるでしょ。もちろんIE11未満はスルー。

Automatic HTTPS Rewrites:On

HTMLとかCSS内の内部リンクでHTTP指定している箇所をHTTPSに自動変換してくれるらしい。

参考サイト

コメント