web-dev-qa-db-ja.com

証明書ボットの更新:nginx:[error] open() "/run/nginx.pid" failed(2:No such file or directory)

Certbotとnginxのバージョン:

certbot.eff.org インストールガイドを使用してインストールされたcertbot。

  • 証明書ボットのバージョン:0.22.2
  • Nginxバージョン:1.10.3

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とスタンドアロンに変更する

Nginxサービスを停止および開始するために、_/etc/letsencrypt/renewal-hooks/pre/_および_/etc/lestencrypt/renewal-hooks/post/_にポストおよびプレフックを追加します。

Nginxが正しく起動していないか、正しく停止していないようです。更新が完了した後、nginxは(code = exited、status = 1/FAILURE)で失敗します

Nginxエラーログショー:

nginx log image

証明書ボットの更新中のエラー: Certbot error log in renewal

7
Roshan Shrestha

Ubuntu 16.04でも同じ問題が発生しました

/etc/letsencrypt/renewal/*.confのpostフックとpreフックを削除し、オーセンティケーターをnginxに変更しました-2つのエントリstandaloneにありました。

そして、それは今うまく機能しています。

編集:

推奨される方法 更新構成を更新するには、次を使用して新しい証明書を再発行します。

certbot -i nginx -d example.com -d www.example.com certonly

3
lechup

実行してみてください:

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

これが将来の読者の役に立つことを願っています。解決策のソースは ここです(ただし、記事はロシア語です)

0
hotenov