无法使用 nginx (certbot) 将 Let's encrypt ssl 证书添加到域中

无法使用 nginx (certbot) 将 Let's encrypt ssl 证书添加到域中

我在使用 nginx 和 certbot 将 Let's Encrypt SSL 证书应用到我的域时遇到问题。我的 (Nuxtjs) 网站在装有 Ubuntu 18.04 的 VPS 上运行。我想将证书添加到 mydomain.nl 和 staging.mydomain.nl,但无法完成。我对此很陌生,但我以前确实成功做到了这一点,没有任何问题。

如果我是正确的,certbot 会在运行时尝试放置一个文件来验证域sudo certbot --nginx。但后来我收到以下错误:

Failed authorization procedure. mydomain.nl (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"
IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: mydomain.nl
   Type:   unauthorized
   Detail: Invalid response from
   http://mydomain.nl/.well-known/acme-challenge/PBjT0nQy7m5_bE42I1jr5mMaYxLMma4ONP9FAUgCD3c
   [2a02:2268:ffff:ffff::4]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD
   HTML 2.0//EN\">\n<html><head>\n<title>404 Not
   Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

我也尝试在配置中添加此块:

location ~ /.well-know/acme-challenge {
    allow all;
    root /var/www/mydomain.nl/html;
}

但没有成功..

我可以访问我的域上的网站,因此 DNS 应该是正确的。

根据要求,当我运行时,ls -ld /var/www/mydomain.nl/html我得到以下输出:

drwxrwxr-x 10 kim kim 4096 May 13 20:38 /var/www/mydomain.nl/html

Nginx 用户是www-data

有人能在这里指出正确的方向吗?任何帮助将非常感激!

提前致谢!

答案1

发生这种情况是因为 Certbot 验证网站域是否在线。如果收到带有 404 代码的 http 响应,您将无法验证它是否存在,并且不会生成证书。

你可以尝试一下独立模式。

certbot certonly --standalone --preferred-challenges http -d example.com --webroot-path /path/to/root

答案2

结果我的域名注册商为我的域名预先配置了 AAAA 记录。我必须删除此记录才能正常工作。感谢您的思考!

相关内容