エラー
certbot で証明書更新を行う際に出力される
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Encountered error while loading certificate or csr: [('PEM routines', '', 'no start line')]
An unexpected error occurred:
OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
現在所有する証明書をリストアップする certbot certificates を試行すると下記のようになる
Saving debug log to /var/log/letsencrypt/letsencrypt.log
verifying the signature of the certificate located at /etc/letsencrypt/live/stoicsounds.jp/cert.pem has failed. Details: Unable to load PEM file. See https://cryptography.io/en/latest/faq.html#why-can-t-i-import-my-pem-file for more details. MalformedFraming
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/certbot/crypto_util.py", line 305, in verify_renewable_cert_sig
cert = x509.load_pem_x509_certificate(cert_file.read(), default_backend())
File "/usr/lib64/python3.9/site-packages/cryptography/x509/base.py", line 531, in load_pem_x509_certificate
return rust_x509.load_pem_x509_certificate(data)
ValueError: Unable to load PEM file. See https://cryptography.io/en/latest/faq.html#why-can-t-i-import-my-pem-file for more details. MalformedFraming
Renewal configuration file /etc/letsencrypt/renewal/stoicsounds.jp.conf produced an unexpected error: verifying the signature of the certificate located at /etc/letsencrypt/live/stoicsounds.jp/cert.pem has failed. Details: Unable to load PEM file. See https://cryptography.io/en/latest/faq.html#why-can-t-i-import-my-pem-file for more details. MalformedFraming. Skipping.
原因
前回更新時、「RSAで今まで作ってたけど ECDSAで作る?」にyesをしていた
それによって cert.pem 他3ファイルが certbot で読めない形式となるためにエラーとなる
cat したときにバイナリのような出方をする証明書は certbot で読めない
ちなみに、nginx、dovecot などでは問題なく利用できる
対処
最新の証明書は利用不能なので、最後にRSAで発行してある catでもテキストとして
参照できる証明書を最新のものとして偽装して更新する
更新する際のパラメータ不足なのか、certbot の不具合なのか
いずれにせよ対処方法がほしい