我有一个使用 SSL 的 Web 应用程序。该网站不面向公众,仅供我们企业内部私人访问。
出于安全原因,我们运行两个独立的 Active Directory 域和网络,但这两个域的用户都可以访问此特定的 Web 应用程序。我们在每个域上维护私有 CA,以便为 Web 服务器生成证书。
有问题的 Web 应用具有由其中一个 CA 颁发的有效证书,并且该域中的所有用户都“信任”该网站。另一个域中的用户可以访问该网站,但会显示证书警告。
由于我不想训练我的用户忽略警告,所以我想在 CA 之间建立某种信任关系,但我不知道如何这样做。
因此重申...
DOMAIN1 和 DOMAIN2 各自拥有自己的证书颁发机构。WEBAPP 是 DOMAIN1 的成员,并且拥有由 DOMAIN1 证书颁发机构签发的 SSL 证书,因此所有 DOMAIN1 用户都信任该证书。来自 DOMAIN2 的所有用户都会收到证书错误。
答案1
证书不可能看起来像是由多个证书颁发机构颁发的 - 它是直接的父子关系。
我能想到的两个选择:
- 为域 2 中的客户端信任域 1 的 CA。可以将其导入 AD 证书存储,或直接通过组策略应用。
- 在域 2 客户端将访问的不同端口或 IP 上的 Web 服务器上设置单独的侦听器,并使用由域 2 的 CA 颁发的证书。
答案2
我猜测您的安全原因阻止在两者之间建立域信任。
也就是说:从 DOMAIN1 导出根 CA 证书。将其发布为受信任的根 CA通过 GPO在 DOMAIN2 中。您的用户应该不会再看到不受信任的 CA 警告。
或者,如果相关内部站点具有可公开路由的 FQDN(即 site.com 而不是 site.local),您可以通过从 eNom 或类似供应商处购买 10 美元的 SSL 证书来节省大量时间和麻烦。如果配置需要花费大量时间,那么花这 10 美元而不是花您更宝贵的时间是一个不错的商业案例。