この記事は3年以上前に書かれた記事で内容が古い可能性があります
Nginxコンテナに、Let’s Encryptで証明書を自動更新で当てたい場合
2019-12-01
で作成したnginxコンテナに、Let’s Encryptで証明書を当てたい場合
Let’s Encryptの証明書を更新する(Bitnami on AWS)
Let’s Encryptの証明書を更新する(EC2)
AmazonLinuxのSSL化対応
この辺りで言及している通り、一度Apache/Nginxを停止してから更新する必要があある
止めていないと以下のようなエラーが出る
# /root/letsencrypt/certbot-auto renew --force-renew Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/www.yoshiislandserver.net.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Plugins selected: Authenticator standalone, Installer None Renewing an existing certificate Performing the following challenges: http-01 challenge for www.yoshiislandserver.net Cleaning up challenges Attempting to renew cert (www.yoshiislandserver.net) from /etc/letsencrypt/renewal/www.yoshiislandserver.net.conf produced an unexpected error: Problem binding to port 80: Could not bind to IPv4 or IPv6.. Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/www.yoshiislandserver.net/fullchain.pem (failure) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/www.yoshiislandserver.net/fullchain.pem (failure) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 renew failure(s), 0 parse failure(s)
通信ルールで遮断している場合も同じエラーがでる模様
参考:
Let’s Encryptの証明書を更新する(Bitnami on AWS)
当たり前だけど、DockerでNginxを動かしている場合は、コンテナを止めなければいけない
自動で更新されるように、crontabに入れるなkらこんな感じ
# crontab -l 0 0 1 * * sudo docker stop 【コンテナID】 && sudo /root/letsencrypt/certbot-auto renew --force-renew && sudo docker start 【コンテナID】