エラー nginx cannot load certificate path/fullchain.pem 証明書を削除した後にNGINXサービスをテストすると表示されます Let’s Encrypt で生成 Certbot.
サーバーでは、エラーは次のように表示されます。
nginx: [emerg] cannot load certificate "/etc/letsencrypt/live/example.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/example.com/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
キュプリン
バックグラウンド nginx エラー
以前の記事で、削除する方法を紹介しました Certbot 過去にサーバーでホストされていたが、現在はアクティブではないドメイン。 古いドメインを削除する Certbot certificates (証明書を暗号化しましょう).
証明書を削除する場合 SSL サーバーでまだホストされているアクティブなドメインの場合、次のコマンドを使用します。 sudo certbot delete
、証明書は自動的に削除されますが、サービスが再起動されるまでセッションでアクティブなままです nginx
. nginx -t コマンド (サービスのテスト) を使用すると、上記のエラーでテストが失敗することに驚くかもしれません。 ただし、解決策は非常に簡単です。
nginx を修正: [emerg] 証明書 fullchain.pem をロードできない
証明書をインストールする場合 SSL Let’s Encrypt 経て Certbot、ドメインの nginx の構成ファイルに、証明書の存在を示す数行が追加されます。 証明書が削除されると、行は nginx config に残るため、手動で削除する必要があります。 つまり、以下の行です。
.....
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name example.com www.example.com;
listen 80;
return 404; # managed by Certbot
証明書を削除したドメインのnginx confgファイルからこれらの行を削除した後 SSL、コマンドを実行します nginx -t
すべてが問題ないかどうかを確認します。
[root@server]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server]#
これで、サービスを安全に再起動できます nginx.