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

Ric*_*son 5 ssl-certificate lets-encrypt

我有一个在私有子域上运行的服务器,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
Run Code Online (Sandbox Code Playgroud)

但这都要求我进行 LetsEncrypt 无法看到的 DNS 记录更改。有没有办法解决?

Bob*_*Bob 6

是什么阻止您在公共 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 
Run Code Online (Sandbox Code Playgroud)

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