cronで自動更新するように設定していたはずが上手く動いておらず証明書期限が迫ってたときに手動更新で対応した際のメモです。
以下、証明書取得済み(SSL化済み)、nginx利用前提です。
Lets’s Encrypt有効期限 手動更新コマンド
以下のコマンドを実行するだけでOK。利用状況によってsudoは不要です。
sudo certbot-auto renew --force-renew --post-hook "systemctl restart nginx"
発生したエラーと対策:Invalid response from http://hogehoge.com/.well-known/acme-charenge/ほにゃらら
自分が最初に更新しようとしたときは上記のようなエラーが発生しました。どうやら「ドメイン名/
.well-known/acme-challenge/ほにゃらら〜」にアクセスできずエラーが発生しているようです。
対策としてこのアクセスに対しドキュメントルート(/usr/share/nginx/html/)を設定するようnginxの設定(gunicorn.conf)を変更。これでコマンドが通るようになりました。
メモ:実際に変更した内容
設定ファイルを開き(gunicorn.confは適宜読み替えてください)
sudo nano /etc/nginx/conf.d/gunicorn.conf
以下のように修正しました(
ハイライト部分が追加箇所)
server {
listen 443 ssl;
server_name hogehoge.com;
ssl_certificate /etc/letsencrypt/live/hogehoge.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hogehoge.com/privkey.pem;
root /usr/share/nginx/html;
client_max_body_size 10M;
location ^~ /.well-known/acme-challenge/ {
root /usr/share/nginx/html;
}
location /static {
alias /var/www/static;
}
location /media {
alias /var/www/media;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
SSLの有効期限を確認したいときは?
以下のサイトが便利です。URLを入力するだけで簡単に確認できます。
SSL有効期限チェッカー | COMODO JAPAN
サーバー上で確認する方法については以下記事が参考になります。
Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 | さくらのナレッジ
参考記事
Let’s Encryptでrenewが失敗するときのTips
NginxでLet’s Encryptを使うためのメモ書き | work.log