面倒を見ているWebサイトの一つに、Let’sEncryptのSSL証明書を手動で更新とインストールをしているものがあり、今回、いつも通りの手順で更新しようとしたら、秘密鍵のインストールでサーバーがエラーを出して焦ったのと、原因が判明して無事に証明書が更新できたメモです。
もくじ
サーバー環境
Bizメール&ウェブ ビジネスr3
本件のサーバー環境というか、ホスティングサービスは
NTTコミュニケーションズの、”Bizメール&ウェブ ビジネスr3”というサービスです。
SSL証明書の運用
”Bizメール&ウェブ ビジネスr3”では、Let’sEncryptで取得した証明書を、「既存の証明書のインストール」というメニューからインストールして利用することができます。
Let’sEncryptのSSL証明書の有効期限は3ヶ月なので、3ヶ月毎にCertbotでLet’sEncryptのSSL証明書を取得して、手動更新していました。
”Bizメール&ウェブ ビジネスr3”でのLet’sEncryptのSSL証明書インストール
”Bizメール&ウェブ ビジネスr3”のメニューでは、
・秘密鍵のインストール(Certbotで作成される、”privkey.pem”ファイルをアップロード)
・証明書のインストール(Certbotで作成される、”fullchain.pem”ファイルをアップロード)
を順に行うだけで済むのですが、、、
秘密鍵のインストールでエラー
秘密鍵のファイルを”Bizメール&ウェブ ビジネスr3”でアップロードすると、
とのエラーメッセージが表示されて、秘密鍵のインストールができませんでした。
秘密鍵の暗号化方式がCertbotの仕様変更で以前と変わっており、インストール先のサーバーがその暗号化方式に対応していなかったことが原因
ECDSAになっていた
Certbotでは従来、秘密鍵の暗号化方式として”RSA”だったのが、2022年リリースのバージョンから”ECDSA”になったとのこと。
ECDSA方式は残念ながら、”Bizメール&ウェブ ビジネスr3”のサーバーは対応していなかったようです。
解決方法
Certbotのコマンドで秘密鍵の暗号化方式に”RSA”を指定
Certbotのコマンドで、暗号化方式をRSAで指定するオプションを追加します。
--key-type rsa
コマンド全体の例としてはこんな感じです。
certbot certonly --manual --key-type rsa -d ドメイン
これで従来のRSA方式の秘密鍵が作成されます。