kesalahan nginx cannot load certificate path/fullchain.pem muncul saat kami menguji layanan NGINX setelah menghapus sertifikat Let’s Encrypt dihasilkan dengan Certbot.
Cuprin
Di server, kesalahan muncul seperti ini:
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
Kesalahan nginx latar belakang
Dalam artikel sebelumnya saya menunjukkan bagaimana Anda dapat menghapus dari Certbot domain yang sebelumnya dihosting di server tetapi saat ini tidak lagi aktif. Hapus domain lama Certbot certificates (Ayo Enkripsi Sertifikat).
Saat Anda menghapus sertifikat SSL untuk domain aktif, yang masih dihosting di server, dengan perintah: sudo certbot delete
, sertifikat dihapus secara otomatis, tetapi tetap aktif dalam sesi hingga layanan dimulai ulang nginx
. Dengan perintah nginx -t (menguji layanan) Anda mungkin terkejut bahwa pengujian gagal dengan kesalahan di atas. Namun, solusinya sangat sederhana.

Memperbaiki nginx: [emerg] tidak dapat memuat sertifikat fullchain.pem
Ketika Anda menginstal sertifikat SSL Let’s Encrypt oleh Certbot, di file konfigurasi nginx untuk domain, beberapa baris ditambahkan yang menunjukkan keberadaan sertifikat. Saat sertifikat dihapus, baris tetap ada di nginx config dan harus dihapus secara manual. Yaitu, baris di bawah ini:
.....
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
Setelah menghapus baris-baris ini dari file nginx confg dari domain tempat Anda menghapus sertifikatnya SSL, jalankan perintah nginx -t
untuk memeriksa apakah semuanya baik-baik saja.
[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]#
Sekarang Anda dapat memulai ulang layanan dengan aman nginx.