Nginx SSL/TLS設定を TLS 1.2と1.3に変更

Webサーバー サイトの運用
Nginx SSL/TLS設定
TLS 1.1以下の対応を無くし、TLS 1.2と1.3だけを有効化
 
SSL証明書を Reverse Proxy で集中管理する方式に変更したので、久しぶりに「Qualys SSL Labs」でのセキュリティ評価を実行してみると、診断結果が「B」に下がっていた。
 
「Qualys SSL Labs」での【SSL脆弱性診断】結果
 
以下、Nginx の SSL設定を、TLS 1.2と1.3に変更した記録。
 
 

 

スポンサー リンク

 

 
 
 
 
 
1. 「Qualys SSL Labs」でのセキュリティ評価
 
Qualys SSL Labs」での【SSL脆弱性診断】結果。
「Qualys SSL Labs」での【SSL脆弱性診断】結果
 
 
問題点:
This server supports TLS 1.0 and TLS 1.1. Grade capped to B. MORE INFO »
既にTLSv1とTLSv1.1は古く非推奨になっている。
 
 
ブラウザ(Chrome)での、サイトの表示状況。
ブラウザ(Chrome)での表示状況
 
各ページ共「この接続は保護されています」と表示され、問題なく稼働している。
 
 

 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;

#
 
変更後の、「Qualys SSL Labs」での【SSL脆弱性診断】結果。
変更後の、「Qualys SSL Labs」での【SSL脆弱性診断】結果
 
グレードが「A」になり、「This server supports TLS 1.3」と表示される。
 
「Configuration」の内容。
「Configuration」の内容
 
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)
 

 

スポンサー リンク

 

             

 

 

 

“Nginx SSL/TLS設定を TLS 1.2と1.3に変更” への2件の返信

  1. 数ヶ月前にLチカをして以来触っていなかったラズパイを使って何かできないか考えていたところ、このブログへ行き着き、手順通りにとりあえずWordpress導入まで漕ぎ着けました。私はIT初心者の文系学生ですが、ブログの説明が大変わかりやすく、とても勉強になりました。さらに、プロフィールを拝見して気がついたのですが、投稿主のtacsanさんは70歳前後とのことで驚き、勝手ですが激励されたような感覚になりました。
    私事で恐縮ですが、最近何かと動く気になれず、悶々とした日々を送っていたため、ラズパイとlinuxに熱中するきっかけをいただき、大変感謝しています。今後の投稿も楽しみにしています。

    1. コメントありがとうございます。
      ブログを公開されると、益々元気になれますよ。
      徳は孤ならず必ず隣りあり。(論語より)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください