我有一个运行在私有子域server.internal.example.com上的服务器
example.com是公开的,但internal.example.com不是。
我已经使用CertBot为*.example.com生成了一个证书,但是如果我试图扩展它以包括*.internal.example.com,那么LetsEncrypt挑战就会失败,因为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记录更改。有办法绕过这件事吗?
发布于 2021-05-04 11:44:18
是什么使您不简单地在您的公共DNS中创建DNS记录-- letsencrypt需要?
如果这是为了保守你的内部网络布局机密?
一个特定主机名的TLS证书已经存在并已经创建,这一事实通常会成为公共信息(例如,请参阅https://crt.sh/上的搜索函数)。如果您不希望这样做,请为内部TLS证书使用内部CA (包括所需的一切)。从而避免了整个问题。
由于证书的存在或多或少会验证主机名的存在,因此也没有直接的理由不允许您的公共DNS中的内部主机记录(如果只有证书请求/更新期间的必要记录).
除非您的公共DNS将您的内部DNS区域internal.example.com委托给您的内部IP地址,否则没有任何技术原因会阻止您简单地创建
_acme-challenge.server.internal.example.com. IN TXT 667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc 在公共DNS区域中记录(具有正确值)。
发布于 2021-05-04 11:41:17
不,这是没有办法的。您无法获得--让我们加密域的证书--让我们无法看到。
考虑为内部证书创建自己的CA。对于内部环境来说,这非常简单(例如,查看easy)。
https://serverfault.com/questions/1062511
复制相似问题