Let'sEncryptの証明書を更新したのにブラウザから脆弱だと怒られたが、nginxの設定が悪かった話


証明書の警告

Let's Encryptの証明書のキーサイズかと思い、2048→4096へ変更したが、効果なし

原因

nginxのconfig「ssl_protocols」が「TLSv1」となっていたため。

変更前

       server {
         listen 443 ssl;
         server_name yourserverdomain;
         ssl_certificate chain.pem;
         ssl_certificate_key key.pem;
         ssl_session_timeout 5m;
         ssl_protocols TLSv1; ssl_ciphers
         ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
         ssl_prefer_server_ciphers on;

       }

対策

nginxのconfig「ssl_protocols」を「TLSv1.2」へ変更する。

変更後

       server {
         listen 443 ssl;
         server_name yourserverdomain;
         ssl_certificate chain.pem;
         ssl_certificate_key key.pem;
         ssl_session_timeout 5m;
         ssl_protocols TLSv1.2; ssl_ciphers
         ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
         ssl_prefer_server_ciphers on;

       }

適用後の証明書の状態