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に自動変換してくれるらしい。