hata nginx cannot load certificate path/fullchain.pem sertifikaları sildikten sonra NGINX hizmetini test ettiğimizde görünür Let’s Encrypt ile oluşturulmuş Certbot.
Sunucuda hata şu şekilde görünür:
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
Içerik
Arka plan nginx hatası
Önceki bir makalede, nasıl silebileceğinizi gösterdim. Certbot geçmişte sunucuda barındırılan ancak şu anda aktif olmayan alan adları. Eski alanları sil Certbot certificates (Sertifikayı Şifreleyelim).
Sertifikaları sildiğinizde SSL hala sunucuda barındırılan aktif etki alanları için komutla: sudo certbot delete
, sertifika otomatik olarak silinir, ancak hizmet yeniden başlatılana kadar oturumlarda etkin kalır nginx
. nginx -t komutuyla (hizmeti test etme) testin yukarıdaki hatayla başarısız olmasına şaşırabilirsiniz. Ancak çözüm çok basit.
Sabit nginx: [emerg] fullchain.pem sertifikasını yükleyemiyor
Bir sertifika yüklediğinizde SSL Let’s Encrypt tarafından Certbot, etki alanı için nginx'in yapılandırma dosyasında, sertifikanın varlığını gösteren birkaç satır eklenir. Sertifika silindiğinde, satırlar nginx yapılandırmasında kalır ve manuel olarak silinmeleri gerekir. Yani, aşağıdaki satırlar:
.....
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
Sertifikasını kaldırdığınız alanın nginx confg dosyasından bu satırları sildikten sonra SSL, komutu yürütün nginx -t
her şeyin yolunda olup olmadığını kontrol etmek için.
[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]#
Artık hizmeti güvenle yeniden başlatabilirsiniz nginx.