2022年2月11日

nginx ssl_chipers と ssl_conf_command の設定覚書

この記事は、nginx の ssl_chipers をどうするんだっけとなったときにコピペするための覚書です


現時点では、IPAの「TLS暗号設定ガイドライン~安全なウェブサイトのために(暗号設定対策編)~」
 TLS1.3(高セキュリティ型)とTLS1.2(パターン名による推奨セキュリティ型)の折衷案が、対応端末が多く取りこぼしが少なく妥当ではないかという結論
 理由は「TLS1.2 iOS6~9 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256」の救済が可能。iOS9を切っても良いなら高セキュリティ型に(iOS9は2015年9月16日リリース)

ssl_protocolsに 1.2と1.3を指定
ssl_protocols TLSv1.2 TLSv1.3;
TLS 1.2 パターン名による推奨セキュリティ型
ssl_ciphers ECDHE+AESGCM:DHE+aRSA+AESGCM:ECDHE+AESCCM:DHE+aRSA+AESCCM:+AES256:ECDHE+CHACHA20:DHE+aRSA+CHACHA20:+DHE:ECDHE+AES128:ECDHE+CAMELLIA128:ECDHE+AES:ECDHE+CAMELLIA:+ECDHE+SHA:DHE+aRSA+AES128:DHE+aRSA+CAMELLIA128:DHE+aRSA+AES:DHE+aRSA+CAMELLIA:+DHE+aRSA+SHA;
TLS 1.3 高セキュリティ型(openssl 1.1.1x と nginx 1.9.14 以降)
ssl_conf_command Ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256;

・ssl_ciphers TLS 1.2 1.1 1.0の暗号化設定に利用 1.1と1.0はもういらない
・ssl_conf_command Ciphersuites TLS1.3の暗号化設定に利用

ちょいメモ
OCSP Stapling nginx 1.3.7以降
HTTP/2 nginx 1.13以降
TLS 1.3 nginx 1.9.14以降
TLS 1.2 nginx さて? openssl 1.0.2


高セキュリティ型

・TLS1.3 高セキュリティ型の設定例

ssl_conf_command Ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256;

・TLS1.2 パターン名による高セキュリティ型の設定例

ssl_ciphers ECDHE+AESGCM:DHE+aRSA+AESGCM:ECDHE+AESCCM:DHE+aRSA+AESCCM:ECDHE+CHACHA20:DHE+aRSA+CHACHA20:+AES128:+DHE;

・TLS1.2 暗号スイート名による高セキュリティ型の設定例

ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8;

推奨セキュリティ型

・TLS1.3 推奨セキュリティ型、セキュリティ例外型の設定例

ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;

・TLS1.2 パターン名による推奨セキュリティ型の設定例

ssl_ciphers ECDHE+AESGCM:DHE+aRSA+AESGCM:ECDHE+AESCCM:DHE+aRSA+AESCCM:+AES256:ECDHE+CHACHA20:DHE+aRSA+CHACHA20:+DHE:ECDHE+AES128:ECDHE+CAMELLIA128:ECDHE+AES:ECDHE+CAMELLIA:+ECDHE+SHA:DHE+aRSA+AES128:DHE+aRSA+CAMELLIA128:DHE+aRSA+AES:DHE+aRSA+CAMELLIA:+DHE+aRSA+SHA;

・TLS1.2 暗号スイート名による推奨セキュリティ型の設定例

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-CCM:ECDHE-ECDSA-AES128-CCM8:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-CCM:ECDHE-ECDSA-AES256-CCM8:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-CCM:DHE-RSA-AES128-CCM8:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-CCM:DHE-RSA-AES256-CCM8:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-CAMELLIA128-SHA256:ECDHE-RSA-CAMELLIA128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-CAMELLIA256-SHA384:ECDHE-RSA-CAMELLIA256-SHA384:ECDHEECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-CAMELLIA256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA;

ssl-config.mozillaのnginxと比べると

https://ssl-config.mozilla.org/

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-config Mozilla)に比べCipher Suitesが増える

動作確認 SSL Server Testから
https://www.ssllabs.com/ssltest/

・TLS 1.3 増加 3→5
TLS_AES_256_GCM_SHA384 (0x1302) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_CHACHA20_POLY1305_SHA256 (0x1303) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_AES_128_GCM_SHA256 (0x1301) ECDH x25519 (eq. 3072 bits RSA) FS
以下増加分
TLS_AES_128_CCM_SHA256 (0x1304) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_AES_128_CCM_8_SHA256 (0x1305) ECDH x25519 (eq. 3072 bits RSA) FS

・TLS 1.2 増加 5→10
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8) ECDH x25519 (eq. 3072 bits RSA) FS
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e) DH 3072 bits FS
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f) DH 3072 bits FS
以下増加分
TLS_DHE_RSA_WITH_AES_256_CCM (0xc09f) DH 3072 bits FS
TLS_DHE_RSA_WITH_AES_256_CCM_8 (0xc0a3) DH 3072 bits FS
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xccaa) DH 3072 bits FS
TLS_DHE_RSA_WITH_AES_128_CCM (0xc09e) DH 3072 bits FS
TLS_DHE_RSA_WITH_AES_128_CCM_8 (0xc0a2) DH 3072 bits FS


参考サイト:
最終更新日:2021年12月7日より
https://www.ipa.go.jp/security/vuln/ssl_crypt_config.html

OpenSSLでの暗号スイートと指定方法を確認する(+Apache、nginxでのIPAガイド設定例含む)
https://kazuhira-r.hatenablog.com/entry/2021/08/31/000416

nginx 1.19.4 以降で ChaCha20-Poly1305 の運用が現実的になった件
https://blog.kteru.net/chacha20-poly1305-with-nginx-ssl-conf-command/

TLS 1.0/1.1サイトは完全にブロック ~「Google Chrome 98」安定版がリリース
https://forest.watch.impress.co.jp/docs/news/1385273.html


余談:ssl_dhparam /etc/nginx/dhparamXXXX.pem は設定しましょう
dhparam.pemを作るのが面倒な場合
https://github.com/internetstandards/Internet.nl/tree/master/docker/it/targetbase/dh_param_infiles
ffdhe2048.txt
ffdhe3072.txt
ffdhe4096.txt
があります
最近は 3072bitsで作成 openssl dhparam -out /etc/nginx/dhparam3072.pem 3072

nginx : ssl_dhparamの有り無しでの挙動の違い
https://qiita.com/r-ytakada/items/7ac9ce32c1ed4d01d505

スポンサーリンク


関連する記事:3件


  • follow us in feedly