记录一次解决 LNMP 添加 Let's Encrypt 证书失败的问题

分类: 服务器 > Linux

一、问题描述

每次添加网站的时候,到了创建 SSL 那一步,就会报错,如下:

/usr/local/acme.sh/acme.sh [found]
Starting create SSL Certificate use Let's Encrypt...
[Mon Oct 21 03:06:43 CST 2019] Multi domain=''
[Mon Oct 21 03:06:43 CST 2019] Getting domain auth token for each domain
[Mon Oct 21 03:06:43 CST 2019] Getting webroot for domain=''
[Mon Oct 21 03:06:43 CST 2019] Getting new-authz for domain=''
[Mon Oct 21 03:06:46 CST 2019] The new-authz request is ok.
[Mon Oct 21 03:06:46 CST 2019] Getting webroot for domain=''
[Mon Oct 21 03:06:46 CST 2019] Getting new-authz for domain=''
[Mon Oct 21 03:06:47 CST 2019] The new-authz request is ok.
[Mon Oct 21 03:06:47 CST 2019] Verifying:
[Mon Oct 21 03:06:51 CST 2019] :Verify error:Invalid response from http://domain.com/.well-known/acme-challenge/OZAKqY6oC [IP]:
[Mon Oct 21 03:06:51 CST 2019] Please check log file for more details: /usr/local/acme.sh/acme.sh.log
Let's Encrypt SSL Certificate create failed!

红色的报错信息还是非常明显的。

按照网上的一些方法解决未果,于是尝试重新启动 NGINX,发现又报错了:

Starting nginx... nginx: [emerg] BIO_new_file("/home/ssl/domain.com.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/home/ssl/domain.com.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
failed

这下就知道问题出在哪了。原来是之前添加过一个网站,选了使用自己的 SSL 证书,结果后来忘了把网站迁移过去,自己的 SSL 证书也就一直没有传过去,所以就报错了。

二、解决问题

知道问题所在之后,解决起来就很快了。

我是直接把那个网站用 lnmp vhost del 给删除了(当然也可以把需要的 SSL 证书文件放到指定位置)。删除之后,再次尝试添加新网站并使用 Let’s encrypt 证书,完全没有问题,一切顺利。

来源:https://oldtang.com/1287.html 发布时间:2022-02-12 22:16:51