SSL 证书 Certbot 无法下载质询文件

问题描述 投票:0回答:1

我正在努力为我的网站获取 SSL 证书。我正在使用 aws ubunutu EC2 实例。我的应用程序由节点服务器运行,我之前通过 openssl 设置了一个虚拟证书来测试。现在我想要一个验证的。当我运行

sudo certbot certonly --standalone -d <MY_DOMAIN>
时,我得到以下信息。

The Certificate Authority failed to download the challenge files from the temporary standalone webserver started by Certbot on port 80. Ensure that the listed domains point to this machine and that it can accept inbound connections from the internet.

一些额外的错误:

Certbot failed to authenticate some domains (authenticator: standalone)
Invalid response from <MY_DOMAIN>.well-known/acme-challenge/CPtnSoDf7dx00D9RmvaTHA50gN9gIengnG-XImGI2Nc: "<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"/>"

node.js ssl
1个回答
0
投票

您遇到的错误表明 Certbot 在通过独立网络服务器验证域时遇到问题。以下是排查和解决问题的几个步骤:

  1. 检查域 DNS 配置: 确保您的域的 DNS 记录指向您的 AWS EC2 实例的正确公共 IP 地址。验证 A 或 CNAME 记录设置是否正确。

  2. 安全组配置: 确保与您的 AWS EC2 实例关联的安全组允许端口 80 上的入站连接。Certbot 需要能够绑定到端口 80 才能完成验证。在 AWS 控制台中检查您的 EC2 实例的安全组设置。

  3. 防火墙设置: 如果您的 EC2 实例上有本地防火墙,请检查它是否允许端口 80 上的传入连接。您可能需要调整防火墙规则。

  4. 检查现有网络服务器: 如果您已经有一个在端口 80 上运行的网络服务器(例如 Nginx 或 Apache),Certbot 的独立模式可能会发生冲突。在这种情况下,您可以在证书颁发过程中暂时停止现有的网络服务器。

    例如,如果您使用 Nginx:

    sudo service nginx stop
    
  5. 重新运行 Certbot: 验证上述几点后,尝试再次运行 Certbot。确保通过

    -d
    选项正确提供您的域名。

    sudo certbot certonly --standalone -d <YOUR_DOMAIN>
    
  6. 临时网络服务器内容: 该错误消息表明来自

    <MY_DOMAIN>
    的响应无效。确保您的网络服务器(由 Certbot 启动)没有为指定路径提供任何内容
    /.well-known/acme-challenge/
    。如果您有其他网络服务器配置或重定向,它们可能会干扰。

  7. 查看 Certbot 日志: 检查 Certbot 日志以了解更多详细信息。您可以在

    /var/log/letsencrypt/
    目录中找到它们。

    cat /var/log/letsencrypt/letsencrypt.log
    
  8. 检查 SSL 配置: 验证 Node.js 应用程序或任何其他网络服务器中的 SSL 配置是否正确设置为使用新颁发的证书。

解决这些问题后,您应该能够使用 Certbot 获取有效的 SSL 证书。如果问题仍然存在,请查看 Certbot 日志以获取更具体的错误消息,这些消息可以指导您进行故障排除。

© www.soinside.com 2019 - 2024. All rights reserved.