Fco*_*der 8 domain-name-system ssl ssl-certificate txt-record lets-encrypt
我想通过 为我的网站创建通配符 SSL LetsEncrypt
。我按照说明运行后Certbot
,它给了我一个 DNS 挑战并说:
Please deploy a DNS TXT record under the name
_acme-challenge.db.example.com with the following value:
jn324jr348r342bhr234hrou234nbr4324fj34r
Run Code Online (Sandbox Code Playgroud)
db.example.com 也在里面/etc/bind/
。
我所做的是打开db.example.com
并在底线添加以下内容:
_acme-challenge.db.example.com 3600 IN TXT "jn324jr348r342bhr234hrou234nbr4324fj34r"
Run Code Online (Sandbox Code Playgroud)
但是当我像这样检查它时:
nslookup -type=TXT _acme-challenge.example.com
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
- The following errors were reported by the server:
Domain: db.example.com
Type: dns
Detail: DNS problem: NXDOMAIN looking up TXT for
_acme-challenge.db.example.com - check that a DNS record
exists for this domain
ubuntu@me-1:/etc/bind$ nslookup -type=TXT _acme-challenge.example.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find _acme-challenge.example.com: NXDOMAIN
Run Code Online (Sandbox Code Playgroud)
当我运行 Certbot 时也会出现错误:
Some challenges have failed.
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: db.example.com
Type: dns
Detail: DNS problem: NXDOMAIN looking up TXT for
_acme-challenge.db.example.com - check that a DNS record
exists for this domain
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?
小智 10
请注意,您必须等待一段时间,直到您的 DNS 区域的更改在全球服务器上更新。您的问题是您正在尝试检查是否对 DNS 应用更改的速度太快。这种情况有一个很好的出路,它需要使用 DNS 提供商的 API。例如,如果您使用 OVH,您可以使用他们的 API 进行 DNS 更改,并且 certbot 将能够立即检查更改。这里有所有 API 插件的列表:https : //certbot.eff.org/docs/using.html?highlight= dns#dns-plugins
如果您的 DNS 提供商不支持此功能,请尝试将您的 DNS 区域移动到 Cloudflare。这非常简单,您将免费获得该服务。此外,通过使用 DNS API,您可以通过在 cron 中留下一个命令来免费更新通配符证书,如下所示:
0 1 20 * * root certbot certonly --non-interactive -d example.com -d '*.example.com' --dns-cloudflare --dns-cloudflare-credentials /my/secret/api/key/location
Run Code Online (Sandbox Code Playgroud)
请注意,在区域文件中,不以点结尾的名称.
是相对的,通常与当前域相关。
所以_acme-challenge.db.example.com
区域内的db.example.com
条目实际上意味着一个条目_acme-challenge.db.example.com.db.example.com.
为确保输入正确,您可以:
在末尾添加一个点: _acme-challenge.db.example.com.
或者不包括域: _acme-challenge
这是基于用于的区域db.example.com
,如果区域用于example.com
代替,情况会略有不同。
另外不要忘记更新区域的序列(在 SOA 记录中),并重新加载区域。
这当然基于为您的域注册的名称服务器是您自己的服务器(和辅助服务器)。
查询时使用nslookup
或者dig
您可以告诉他们从哪个服务器询问答案。始终首先检查您的主要服务器,然后是您的辅助服务器,然后是其他服务器。并且不要忘记某些类型的更新可能需要一段时间(特别是受先前记录的 TTL 影响的更改,以及受域的负缓存 TTL 影响的添加)。
归档时间: |
|
查看次数: |
2043 次 |
最近记录: |