無料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"

\ 最新情報をチェック /