GW暇なので令和前にサーバ設定を色々改善した。今回は特にSSL(HTTPS)周りを見直して、Qualys SSL Labsで最高評価のA+を取得できたのでメモしておく。
Nginx設定の見直し
移行時にとりあえず動けばいいと思って設定したNginxのコンフィグを1から見直した。基本的に以下のサイトを参考にさせていただいた。conf内のパス等はちょいちょい変更したけどほぼそのままで動作している。素晴らしい。ありがたい。
NginxでWordPressを使う時の設定をまとめてみた | work.log
なおSSL関連の設定は以下あたり。プロトコルがTLSv1.2と1.3だけってのが攻めてる気がするんだけど、最近は普通なのかな。
## SSL周り ssl_session_timeout 30m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/ssl/dhparam.pem; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE -ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RS A-AES128-SHA256;
HSTSの設定追加
A+のためにはHSTS(HTTP Strict Transport Security)が必須のようだったので対応した。HSTSの説明や設定方法は以下のサイトが詳しい。
Apach と nginx への HSTS 設定 | ゴミ人間.com
### HSTS(HTTP Strict Transport Security)とは? - SSL に対応しているウェブサーバーへの HTTP リクエストに対し、サーバー側がレスポンスヘッダに SSL 通信が可能であることを表すデータを付与...
うちのサイトの場合はNginxのvirtual.confに以下を追加した。
## HSTS(HTTP Strict Transport Security)設定 add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
preloadの登録はこのサイトで。実際に登録できるとサイト上からも確認できる。
追記(5/1):Statusをよく読んでなかったけど、「pending submission」て承認されてないじゃん。と思って今確認したらちゃんと承認されてた。若干待ち時間があるみたい。よかったよかった。
CAAレコードの追加
HSTSの時点でA+は確定なんだけど、うちが使ってるGoogle Domainsの場合CAAレコードにも対応しているのでこの際設定する。設定内容はこのサイトのジェネレータをもとにした。
Qualys SSL Labsの結果
無事にA+を取得できた。あざした。
途中、サブドメイン(www)の設定がうまくいかなくてHSTSの有効化に苦労したけど、CAAとか色々知らないことあって学びが多かった。