如果域名是公共的,是否可以为私有子域名生成 LetsEncrypt 证书?

如果域名是公共的,是否可以为私有子域名生成 LetsEncrypt 证书?

我有一个在私有子域上运行的服务器,server.internal.example.com

example.com是公开的但internal.example.com实际上不是。

我曾使用 CertBot 生成证书,*.example.com但如果我尝试将其扩展为包含*.internal.example.comDNS 质询,则会失败,因为 LetsEncrypt 无法访问此域。我尝试运行以下两个程序:

sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d *.internal.example.com
sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d server.internal.example.com

但这两者都要求我进行 LetsEncrypt 无法看到的 DNS 记录更改。有什么办法可以解决这个问题吗?

答案1

是什么阻止您简单地在公共 DNS 中创建 letsencrypt 所需的 DNS 记录?

如果是为了保密你的内部网络布局?
特定主机名的 TLS 证书存在且已创建的事实通常会成为公开信息(例如,参见https://crt.sh/)。如果您不想这样:请使用内部 CA 来获取内部 TLS 证书(以及所需的一切),从而避免整个问题。

由于证书的存在或多或少会验证主机名的存在,因此没有理由不允许在公共 DNS 中记录内部主机(如果仅在证书请求/续订期间必要的记录)...

除非你的公共 DNS 将你的内部 DNS 区域委托internal.example.com给你的内部 IP 地址,否则没有任何技术原因可以阻止你简单地创建一个

_acme-challenge.server.internal.example.com. IN TXT 667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc 

在您的公共 DNS 区域中记录(具有正确的值)。

答案2

不,没有办法解决这个问题。您无法获得 Let's Encrypt 无法查看的域的 Let's Encrypt 证书。

考虑为您的内部证书创建自己的 CA。对于内部环境来说,这非常简单(例如,查看 easy-rsa)。

相关内容