無料SSL証明書(Let's Encrypt)のキー長について
CMANのSSLチェックで、「256bit キー長は2048 bit以上が推奨されています」と表示される
certbotでSSL証明書を発行して、CMANでSSL証明書を確認すると下記のように警告が表示されました

CMANなどのチェックツールで「キー長:256 bit」と警告が出る場合ですが、現在作成されている証明書の公開鍵アルゴリズムが ECDSA(楕円曲線暗号) で作成されている可能性が高いです
従来の RSA方式 では「2048 bit以上」が推奨されますが、ECDSA方式 では「256 bit」でもRSA 3072 bit相当の強度があるとされており、セキュリティ上の欠陥ではありません。
RSA 2048 bit以上で、SSL証明書を発行する
ECDSA方式 では「256 bit」でも問題ありませんが、「RSA 2048 bit以上」に変更したい場合は、以下の手順で再発行が可能です。
# RSA 2048 bit以上を指定してSSL証明書を発行します $ sudo certbot certonly --webroot -w /var/www/html/ -d example.com --key-type rsa --rsa-key-size 2048 --force-renewal
オプションの解説
--key-type rsa: 鍵の種類をRSAに指定します。--rsa-key-size 2048: 鍵長を2048 bitに指定します(4096も指定可能ですが、2048が標準的です)。--force-renewal: 有効期限に関わらず、新しい設定で証明書を強制的に再取得します。
注意点:ECDSA 256bitは本当にダメなのか?
結論から言うと、モダンな環境であればECDSA 256bitの方が効率的で安全です。
| 特徴 | RSA (2048 bit) | ECDSA (256 bit) |
| セキュリティ強度 | 標準的 | 同等かそれ以上 |
| 処理負荷 | 高め | 低い(高速) |
| 互換性 | 非常に高い(古い端末もOK) | 高い(ごく一部の古い端末で不可) |
確認用コマンド
再発行後、以下のコマンドで自分の証明書がRSA 2048bitになったか確認できます。
$ openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout | grep "Public-Key"

