スポンサーリンク
概要
本ブログはlets' encryptでSSL証明書を管理していますが、更新がされずにここ2-3日証明書期限エラーが出てしまっていたようです。
lets' encryptの証明書は3ヶ月の期限があるので定期的な更新が必要です。
下記の記事などを参考に自動で更新するクロンなども仕込んでいたのですが、更新がされずにそののまま期限切れとなってしまいました。
https://qiita.com/takutakutaku/items/c8873c7085e450b602bc
今回は対応した方法に関して記載します。
スポンサーリンク
スポンサーリンク
原因
apacheに設定する証明書関係のファイル(/etc/httpd/conf.d/ssl.conf)の設定ミスが原因でした。
下記のように書き換えて、sudo systemctl restart httpd.serviceでapacheを再起動することで治りました。
1 2 3 4 5 6 7 8 9 |
修正前 SSLCertificateFile /etc/letsencrypt/archive/nobunobu1717.site/cert1.pem SSLCertificateKeyFile /etc/letsencrypt/archive/nobunobu1717.site/privkey1.pem SSLCertificateChainFile /etc/letsencrypt/archive/nobunobu1717.site/chain1.pem 修正後 SSLCertificateFile /etc/letsencrypt/live/nobunobu1717.site/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/nobunobu1717.site/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/nobunobu1717.site/chain.pem |
修正前は
/etc/letsencrypt/archive/
以下のディレクトリにあるpemファイルを指定していました。
修正後は
/etc/letsencrypt/live
以下のディレクトリにあるpemファイルを指定しています。
certbot renewで証明書の更新を行うとarchiveディレクトリ以下には、cert2.pem,cert3.pem ... といった形で連番でファイルが作られていきます。(cert3.pemまである状態で更新したらcert4.pemが作られる。)
liveディレクトリにあるcert.pemなどの連番を除いたファイル名はシンボリックリンクとなっていて、更新のたびに最新のファイルを示すようになっています。
ですので、このシンボリック側のパスを設定ファイルにしておけば自動で証明書が切り替わるわけですね。
よく分からずに使わずにちゃんと仕組みを理解して使わないといけないですね・・・。