什么是让我们加密DNS—01挑战以及如何使用它来获取SSL证书?

2024年 3月 20日 133.3k 0

Let's Encrypt是一个免费且受信任的SSL证书颁发机构(CA)。Let's Encrypt使用严格的策略来验证域的所有权,并且只为那些已验证的域提供SSL证书。

默认情况下,We‘s Encrypt使用HTTP-01质询来验证所有权。HTTP-01挑战将一个文件放在您的Web服务器的Webroot上,并使用Web服务器的DNS名称获取该文件。如果可以从互联网上获取该文件,则验证域名的权威并颁发SSL证书。这对大多数服务器和家庭用户来说是好事,他们可以从互联网服务提供商(Isp)那里支付公共IP地址。

但是,如果您想为家庭网络或私有/内部网络的域名使用Let's Crypt SSL证书,该怎么办?好吧,在大多数家庭网络中,获得Let's Crypt SSL证书是一个挑战,因为最有可能的是,您的ISP不会给您一个公共IP地址。因此,您将无法通过Let's Encrypt HTTP—01挑战(因为您的计算机/服务器无法从互联网访问)。

在这种情况下,您可以使用让我们加密DNS-01挑战来获取您的家庭/内部网络的SSL证书。在此方法中,We‘s Encrypt为您的DNS服务器上的“subdomain_acme-challenge.you domain.xyz”添加了一条DNS TXT记录,并检查该DNS TXT记录是否可从互联网上获得。如果TXT记录匹配,您将被验证为该域的所有者,并且让我们加密来颁发SSL证书。

为了让我们加密DNS-01挑战发挥作用并自动续订SSL证书,您必须使用提供API的DNS服务提供商(即CloudFlare、DigitalOcean),该API可用于在DNS服务器上添加/删除TXT记录。

如果您的DNS注册商(您注册域名的所在地)不支持此类服务,您可以使用第三方DNS服务提供商。您只需将域名的DNS域名服务器地址从DNS注册商的DNS服务器更改为所需的第三方DNS服务提供商的DNS域名服务器地址。

内容主题:

  1. 轻松与Let's Crypt DNS验证集成的DNS提供商列表
  2. 让我们加密ACME客户端列表
  3. 从域名注册商更改DNS服务器
  4. Let's crypt DNS—01验证的优点
  5. 让我们加密DNS—01验证的缺点
  6. 结论
  7. 引用

轻松与Let's Crypt DNS验证集成的DNS提供商列表

We‘s Encrypt社区编辑了一份DNS提供商列表,这些提供商公开了某种自动添加/删除DNS记录的API,以便We’s Encrypt客户端可以验证域名并颁发SSL证书。

可以在此链接中找到轻松集成让我们加密DNS验证的域名服务提供商列表。

让我们加密ACME客户端列表

Let's Encrypt客户端也称为ACME客户端。ACME是自动证书管理环境的缩写。ACME是一种自动化计算机/服务器和证书颁发机构之间的交互的协议(即Let's Encrypt)。

最受欢迎的Let's Encrypt ACME客户端是:

  • certbot
  • acme.sh
  • 乐高
  • Posh—ACME

从域名注册商更改DNS服务器

如果您的域名注册商不在可以轻松与Let's Encrypt集成的DNS提供商列表中,则可以使用CloudFlare或其他第三方DNS服务提供商。您所要做的就是将域名的DNS域名服务器从域名注册商的仪表板更改为您想要使用的第三方DNS服务提供商的DNS域名服务器。

在下面的截图中,我们向您展示了从我们的域名注册商的仪表板/网站(我们在那里注册了我们的域名)为我们的一个域名更改DNS域名服务器(到CloudFlare的DNS服务器)的过程。这个过程应该与您的域名注册商相似。如需了解更多信息,请阅读域名注册商的文档或联系他们。

Let's crypt DNS—01验证的优点

Let's Encrypt的DNS—01验证的优点是:

  • 它不需要公共/互联网可访问的IP地址或Web服务器。
  • 您可以使用它来颁发SSL证书,以满足SSL域名(即*. www.example.com、*. www.example.com)。
  • 它可以很好地支持多个Web服务器。

让我们加密DNS—01验证的缺点

虽然Let's Encrypt DNS—01验证有许多优点,但也有一些缺点:

  • 为了使DNS—01验证工作,您需要将DNS服务提供商的API密钥/令牌保留在服务器上,Let's Encrypt客户端将使用该密钥/令牌在DNS服务器上创建用于DNS—01验证的txt记录。由于API密钥/令牌保存在服务器上,如果服务器被黑客攻击,API密钥/令牌就有可能被泄露。
  • Let's Encrypt客户端在DNS服务器上添加一条txt记录后,需要一段时间将更改传播到全球其他DNS域名服务器。Let's Encrypt客户端需要等待更改传播到全球通用DNS域名服务器,以验证域的所有权。如果您的DNS服务提供商没有在API中提供DNS传播时间,Let's Encrypt客户端将不知道要等待多久才能将DNS更改传播到全球其他域名服务器。在这种情况下,DNS验证可能超时,Let's Encrypt可能无法颁发SSL证书。

结论

在本文中,我们讨论了Let's Encrypt DNS—01挑战,以及为什么要使用它而不是默认的HTTP—01挑战来验证域名的所有权。我们还讨论了通过Let's Encrypt DNS—01挑战以获得Let's Encrypt SSL证书的要求。我们列出了与Let's Encrypt良好集成的DNS服务提供商,以及可以用于从计算机/服务器执行DNS验证的Let's Encrypt ACME客户端。最后,我们讨论了Let's Encrypt DNS验证的优点和缺点。

参考资料:

  • 挑战类型—让我们加密
  • 轻松集成Let's Encrypt DNS验证的DNS提供商—Issuance Tech—Let's Encrypt社区支持
  • 自动证书管理环境-维基百科
  • certbot
  • Gihub-acesh-office/acme.sh:实现ACME客户端协议的纯Unix外壳脚本
  • 安装::Let's Encrypt客户端和ACME库用Go编写。
  • 主页-POSH-ACME

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论