我公司有一个臭名昭著的公共网站,它运行在第三方主机上,该主机的域名与我们的内部 Active Directory 域网络相同。为了让我们的内部用户可以浏览该网站,我们长期以来一直为“www”设置内部 A 记录,该记录指向外部网站的静态 IP 地址。以前这种方法很管用。但现在,如果内部用户输入“www.my-company.com”,浏览器会抛出错误“NET:ERR_CERT_COMMON_NAME_INVALID”,删除 URL 中的“https:”,并阻止访问该网站。“高级”错误消息显示“此服务器无法证明它是 my-company.com;其安全证书来自 .my-company.com。这可能是由于配置错误或攻击者拦截您的连接造成的。”
我感到很困惑。如果我对“www.my-company.com”上的内部 DNS 执行 nslookup,它会正确返回网站的公共 IP 地址。如果 HTTPS 需要证书,为什么不从公共网站而不是我们的内部域服务器获取证书?显然,我不明白一些基本的东西!
答案1
为 DNS 名称 example.com 颁发证书,www.example.com以及此网站的任何其他名称。在所有相关的 Web 服务器(包括外部和内部)上使用此证书进行 https 操作。
有些用户不会记住前面的 www。不幸的是,为了满足他们的需求,很难避免 AD DS 目录控制器上的 Web 服务器,即使只是为了进行重定向。这是您可能拥有的内部 Web 服务器之一,即使实际托管在外部而不在您的目录中,也可以让事物共存。
在您的 AD DS 注释中添加以下内容:下次创建域时,不要对内部和外部使用相同的域名。ad.example.com 是一个不错的名称,可以与[电子邮件保护]电子邮件,并且不会干扰公共网站 example.com AKA www.example.com。