Webサーバー サイトの運用
Nginx SSL/TLS設定
TLS 1.1以下の対応を無くし、TLS 1.2と1.3だけを有効化
Nginx SSL/TLS設定
TLS 1.1以下の対応を無くし、TLS 1.2と1.3だけを有効化
SSL証明書を Reverse Proxy で集中管理する方式に変更したので、久しぶりに「Qualys SSL Labs」でのセキュリティ評価を実行してみると、診断結果が「B」に下がっていた。
以下、Nginx の SSL設定を、TLS 1.2と1.3に変更した記録。
スポンサー リンク
目 次
1. 「Qualys SSL Labs」でのセキュリティ評価
問題点:
This server supports TLS 1.0 and TLS 1.1. Grade capped to B. MORE INFO »
既にTLSv1とTLSv1.1は古く非推奨になっている。
This server supports TLS 1.0 and TLS 1.1. Grade capped to B. MORE INFO »
既にTLSv1とTLSv1.1は古く非推奨になっている。
各ページ共「この接続は保護されています」と表示され、問題なく稼働している。
TLSとは何か?
TLSとはSSLの流れを受け継いだプロトコルであり、「暗号化通信をするための手順書」のようなもの。
TLSのバージョン
利用しているパソコン、スマートフォン、ゲーム機、テレビなど、インターネットで暗号化通信できる端末※によって、対応しているバージョンが異なります。
例えば、Android 4.2以前のスマートフォンの標準ブラウザはTLSバージョン1.1以上には対応していない。
なぜTLS 1.0を使ってはいけないのか?
TLS 1.0にはBEASTやPOODLEといった脆弱性があり、PCI DSSとよばれるクレジットカード業界のグローバルセキュリティ基準において、2018年6月30日をもってTLS 1.0の利用を停止するように2015年に基準が改定されました。
PCI DSS 3.2では、SSLとTLS1.1は2018年6月30日までに無くさなければいけないと明示している。
Are You Ready for 30 June 2018? Saying Goodbye to SSL/early TLS
2. TLS 1.2と1.3だけの設定
nginx.conf の編集。
sudo nano /etc/nginx/nginx.conf
SSLに関する記述を、以下の内容に変更。
#
# SSL
#
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /etc/ssl/dhparam.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
#
グレードが「A」になり、「This server supports TLS 1.3」と表示される。
Protocols が、TLS 1.3 と 1.2 だけになっている。
3. ssl_dhparam の作成
上記の設定だけでは、「dhparam.pem」が無いというエラーが出る。
「dhparam.pem」について。
ssl_dhparam
nginxのssl関係のパラメータに、ssl_dhparam と言うものが有ります。 これは、Diffie-Helmanの鍵交換アルゴリズムで使われる素数を格納しているファイルです。 このパラメータですが、nginx-1.10系までは、指定しなくてもOKでした。 しかし、1.11.0から、CHANGELOGには
Changes with nginx 1.11.0 24 May 2016 *) Change: to use DHE ciphers it is now required to specify parameters using the "ssl_dhparam" directive.
と、パラメータが必須になったことが記載されています。
dhparam.pem の作成コマンド。
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
時間が掛かる。
yaopi@Reverse-Proxy:~ $ sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048 Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time ...................................................................................................................................................................................................................+...................+.............................................................................................................................................+.......+....................................+......+................................+......+....................................................................................................................................................................................+................................................................................................................................................+..............................................................+............................................................................................................................................................................................+......................................................................................................+..............................+..........................................................................................................................+........................................+....................................+.............................+......................+........................+..........................................................+.......................................+.............................................................................+...........................+..........................................................................................................................................+...+...........++*++*++*++*
作成場所は何処でも良いが、「 /etc/ssl/ 」にした。
参考:
以上。
(2020.09.17)
(2020.09.17)
スポンサー リンク