我有点困惑,正在寻找一些指导。我在运行 Unbuntu 20.04 版本 2 的家用机器上运行最新的 Nginx。我将 pfsense 作为我的路由器/防火墙在另一台机器上运行。我已经设置了一个 DDNS ([my_name].ddns.net) 条目来指向我不断变化的 WAN IP 地址。
我有 4 个域(拼写我的名字的各种方式)。
我能够使用 certbot 为 [my_name].ddns.net URL 创建一个 Let's Encrypt 证书,使用:
sudo /snap/bin/certbot run --cert-name [my_name].ddns.net
它告诉我管道是正确的。我确认生成了证书,修改了 nginx,最重要的是,当使用 HTTPS 引用 URL 时,URL 安全出现。
我现在正在尝试为 4 个主要域之一创建另一个证书:
sudo /snap/bin/certbot run --cert-name [my_name].com -d [my_name].com
此命令正在尝试,但验证失败。我在 mydomain.com 托管此 URL,并将其配置为标准转发到 [my_name].ddns.net。我唯一能想到的是 mydomain.com 上的更新设置尚未传播。
我是否应该能够做我想做的事情(即创建第二个证书,托管在与 DDNS 域通过标准转发使用 HTTPS 为同一网站提供服务的同一网络服务器上)?
理想情况下,我希望将这 4 个域秘密转发到 [my_name].ddns.net,这样用户就不会看到 DDNS URL,但仍会从浏览器中获得“安全”消息。
这是可能的还是我错过了什么?
谢谢一堆。
归根结底,是的。您可以为通过正常 DNS 记录(CNAME、A、AAAA)指向您的机器的任何有效名称创建任意数量的证书。一些 DNS 提供商和域注册商具有一项功能(有时称为 ALIAS 记录),可让您将虚拟 CNAME 记录放在域顶点上,因为 CNAME 记录通常不能存在于域顶点上。他们的名称服务器将动态响应别名指向的当前 IP 地址的 A 记录。
Let's Encrypt 验证服务器将始终向标准端口 80 发出 HTTP 请求,
http://<name-in-cert>/.well-known/acme-challenge/<token>
并期望在响应正文中接收适当的密钥授权值。他们将遵循 HTTP 3xx 重定向,但我认为他们不会遵循元刷新标签。每个名称和每次续订的令牌和密钥授权值都会不同,这就是为什么尝试自动化此过程很重要的原因。