このサイトをTLS1.3に対応しました

nginx

概要

  • いつからか、matsu.teraren.comのTLS設定において、TLS1.3に対応していなかったので対応しました。
  • TLS1.3は、1.2から大きくハンドシェイクシーケンスが変わっていたり、ちょっと古めの暗号化アルゴリズムが排除されていたりします。リビジョンが1つ上がっただけですが、裏の仕組みは大きな違いがあります。

変更

以下、nginxでの変更箇所です。

(ついでに、HSTSにも対応しました。)

root@dell /e/nginx (master)# git diff
diff --git a/nginx/global/ssl.conf b/nginx/global/ssl.conf
index 9cd7f49..d74c2ed 100644
--- a/nginx/global/ssl.conf
+++ b/nginx/global/ssl.conf
@@ -2,7 +2,7 @@
 # (デフォルト) ssl_ciphers  HIGH:!aNULL:!MD5;
 ssl_prefer_server_ciphers on;

-ssl_protocols TLSv1.2;
+ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers HIGH:!aNULL:!MD5;

 # 2. Logjam攻撃対策
@@ -12,3 +12,6 @@ ssl_stapling on;
 ssl_stapling_verify on;
 resolver 8.8.4.4 8.8.8.8 valid=300s;
 resolver_timeout 10s;
+
+add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
+

Qualysでチェック。A+になりました。

ちなみに、AWSはTLS1.3に未だ対応していないみたいです。

2020/6/14 定期チェック

まだA+なので大丈夫そうです。完了するまでに5分かかりました。。。

追記:2021/2/1

グレードがAに落ちてしまっていたので原因をチェック。

まず、HSTSが短すぎるアラートが出たので変更。

-add_header Strict-Transport-Security 'max-age=86400; preload';
+add_header Strict-Transport-Security 'max-age=15552000; preload';

A+に戻った。

また、対応する暗号アルゴリズムを変更しました。

- ssl_ciphers HIGH:!aNULL:!MD5;
+ssl_ciphers 'HIGH !aNULL !eNULL !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED !RSA !AES128 !ARIA128 !SHA1 !SHA256 !SHA384';

暗号のパラメータに関してはこちらの記事を参考にしました。

その結果

追記 2023/6/22

TLS terminationをCloudflareで行うようにしたのでサーバの方でTLSの設定をする必要がなくなりました。HSTSの設定もCloudflareで行っています。

その結果、A+を簡単に出すことができました。

コメント