【问题标题】:DNS problem: NXDOMAIN looking up A for www.exampl.com - check that a DNS record exists for this domainDNS 问题:NXDOMAIN 为 www.exampl.com 查找 A - 检查该域是否存在 DNS 记录
【发布时间】:2021-10-06 20:30:28
【问题描述】:

我将通过 certbot 为 nginx 获得 SSL

但我遇到此错误“DNS 问题:NXDOMAIN 正在查找 A for www.example.com - 检查此域的 DNS 记录是否存在”

然而我在 cloudflare 中有两条 A 记录:

example.com ip 网址

我该怎么办?

【问题讨论】:

  • 在 Cloudflare 中禁用代理。如果你去 DNS 部分,会有一个橙色的云符号。单击它以禁用它,然后重试该过程。
  • 之前禁用
  • 您的问题在这里与编程无关,但除此之外,在类似情况下,如果您提供所涉及的真实姓名,您可以获得更好的答复。除了您当前的虚拟主机/DNS 提供商公司应该能帮到你。
  • 未创建 CNAME 记录时似乎会出现此问题。创建 CNAME 记录后,尝试生成 SSL。

标签: nginx ssl dns certbot


【解决方案1】:

当 Let's Encrypt Certbot 尝试验证您的域时,如果 certbot 从 IP 位置运行,它无法找到要匹配的域的 IP 地址(A 记录)。

可能的解决方案 1

检查 A 记录的 Cloudflare proxy 是否打开。如果它处于开启状态,请将其关闭。通常,这是通过单击 A 记录的 DNS 页面上的橙色云图标来完成的。

可能的解决方案 2

如果已经完成但您仍然遇到错误,请将 A 记录的 TTL (Time To Live) 字段编辑为 60。您的域 DNS 未传播,这可能会加快进程。

可能的解决方案 3

如果上述方法均无效,则 certbot 或从 certbot 到您域的 DNS 的连接有问题。在运行命令以发出 SSL 时添加 --debug-challenges。这可能会为您提供更多信息。

可能的解决方案 4

最后一个办法是尝试手动模式。您可以通过http 质询而不是dns 模式验证域所有权。按照 Certbot 文档中的说明 here

但是,一旦颁发证书,您可能需要将证书关联到您的 nginx 配置。找到以下配置供您参考。获得证书后,您可以轻松地使用它使您的服务/网站启动并运行。

server {
        server_name example.com;
        location / {
                proxy_pass http://localhost:3000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # 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 = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;
        listen [::]:80;
        server_name example.com;
    return 404; # managed by Certbot

}

【讨论】:

  • " 您的域 DNS 未传播" 从来没有,因为 DNS 传播不存在。
猜你喜欢
  • 1970-01-01
  • 2020-05-23
  • 2019-09-23
  • 1970-01-01
  • 2018-12-24
  • 2023-02-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
相关资源
最近更新 更多