Certbotとnginxのバージョン:
certbot.eff.org インストールガイドを使用してインストールされたcertbot。
SSL証明書の取得は正常に機能します。
_certbot --nginx
_
しかし、認定されたサーボットの更新で
_certbot renew --dry-run
_
nginxが原因で開始に失敗する:
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)
_/etc/letsencrypt/renewal/*com.conf/
_でポストフックとプレフックを変更してみました
installer=nginx
_Nginxサービスを停止および開始するために、_/etc/letsencrypt/renewal-hooks/pre/
_および_/etc/lestencrypt/renewal-hooks/post/
_にポストおよびプレフックを追加します。
Nginxが正しく起動していないか、正しく停止していないようです。更新が完了した後、nginxは(code = exited、status = 1/FAILURE)で失敗します
Nginxエラーログショー:
Ubuntu 16.04でも同じ問題が発生しました
/etc/letsencrypt/renewal/*.conf
のpostフックとpreフックを削除し、オーセンティケーターをnginx
に変更しました-2つのエントリstandalone
にありました。
そして、それは今うまく機能しています。
編集:
推奨される方法 更新構成を更新するには、次を使用して新しい証明書を再発行します。
certbot -i nginx -d example.com -d www.example.com certonly
実行してみてください:
Sudo service nginx restart
次に、nginx設定ファイルをテストします( "nginx:configuration file /etc/nginx/nginx.conf test is successful"と表示されるまで)
Sudo nginx -s reload -t
証明書などへのパスに注意してください
次に、-t
オプションなしで構成を再ロードします。
Sudo nginx -s reload
/etc/letsencrypt/
の構成ファイルを変更することはお勧めしませんが、(存在しない場合)を作成して変更cli.iniここのファイルは私のために働いています。このファイルでpost-hook
を一度指定すると、すべての証明書で機能します。現在のファイルを参照してください:
# /etc/letsencrypt/cli.ini
max-log-backups = 0
authenticator = webroot
webroot-path = /var/www/html
post-hook = service nginx reload
text = True
これが将来の読者の役に立つことを願っています。解決策のソースは ここです(ただし、記事はロシア語です)