在 LAN 上使用 Let's Encrypt 证书并进行 DNS 重定向?

在 LAN 上使用 Let's Encrypt 证书并进行 DNS 重定向?

我正在尝试将现有的 LE 证书用于 LAN 上的服务器。我公开了端口 443 以获取以下证书:mine.example.com并且从 WAN 可以正常进行 https 访问。

然而,我以为(也许是愚蠢的)我可以通过在我的局域网上设置 DNS 重定向(在单独的盒子上使用 dnsmasq)来在内部使用相同的证书,以指向mine.example.com到本地IP。

当我访问时,重定向工作正常,并将本地机器指向内部 IPmine.example.com但证书现在显示“证书颁发机构无效”错误。

也许我误解了 CA 流程的工作方式,但我认为,由于 LE 证书是基于 DNS 的,因此它们仍应与本地 DNS 重定向一起工作。

有人知道怎样让它工作吗?

或者有人能解释一下为什么它不起作用吗?


我知道我可以变得不同本地机器的证书来自 LE,但这意味着尝试配置服务器以使用不同的证书进行内部和外部访问。假设我需要这样做,有没有一种简单的方法可以根据源流量使用不同的证书?

我将通过 nginx 和 Webmin 管理面板提供网络内容,因此考虑到配置的灵活性,对于 nginx 来说这可能相对容易(尽管谷歌在这里也没有提供太多帮助),但不确定机器上是否运行其他网络服务?


PS:如果这是重复的,我们深感抱歉,但在这里(或在 Google 上)搜索了很多次都没有找到任何内容。

答案1

您需要检查每个系统的受信任根存储中的证书,以查看是否安装了相关的根 CA。

Let's Encrypt 有关于其证书的文档:https://letsencrypt.org/certificates/ 请注意,除了由其自己的根 ISRG 签名的链之外,它们还由 IdenTrust 交叉签名。

在 Windows 上,打开证书并查看“证书路径”选项卡会显示证书链。不受信任的证书会显示错误标记图标,并显示不同于“OK”的状态文本。检查您使用的根目录以及它是否在您的受信任存储中。在 Chrome 上,可以在 F12 devtools 的安全选项卡上找到证书。

还可以考虑使用 TLS 测试器,例如 testssl.sh。证书存储会有所不同,但它可以显示许多问题。

相关内容