ミッション HTTPS化完了
HTTPS だけで見えるサイトにする
この章の締めくくりです。証明書を作り、443 番で待たせ、80 番から案内する。ここまでできました。最後に、運用で必ず触ることになる2つを足します。古い暗号方式を使わせないことと、期限を自分で把握することです。
古いバージョンを切る
TLS にはバージョンがあります。古いものには既知の弱点があり、いま新しく開くサーバーで受け入れる理由はありません。
ssl_protocols TLSv1.2 TLSv1.3;この1行で、受け入れるバージョンをこの2つに限れます。書かないと、nginx の版によっては古いものまで受け入れます。
書く場所は 443 番の server ブロックの中です。複数のサイトを持つなら、http の階層に1度だけ書いて全体に効かせるほうが漏れがありません。3章で log_format を conf.d に置いたのと同じ考え方です。
期限を把握する
証明書は必ず切れます。切れた瞬間、訪問者全員に警告が出ます。正式な証明書でも同じで、運用でいちばん多い事故のひとつです。
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -enddate
# notAfter=Aug 8 12:00:00 2027 GMT期限が近いかどうかを判定させることもできます。
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -checkend 2592000-checkend は、指定した秒数のうちに切れるかどうかを調べます。2592000 は 30 日です。切れるなら失敗の扱いになるので、そのままスクリプトの条件に使えます。6 章で .timer を使って定期実行を作りますが、この判定はその題材にちょうど向いています。
通しで確かめる
最後は、訪問者と同じ道筋をたどります。
curl -skIL http://localhost/works/-I でヘッダーだけ、-L で案内を追いかけるので、80 番の 301 と 443 番の 200 が続けて出ます。この2つが並んで見えれば、案内から配信までが繋がっています。
3章で作った /works/ と自分の 404、専用のアクセスログも、443 番に移したあとで生きているかを確かめます。移設のときに静かに落ちるのは、たいていこういう細かい部分です。
手を動かす
古い TLS を切り、期限を確かめ、80 番から 443 番までの道筋が最後まで通っていることを確かめます。