客户信任我的自定义 CA

信息安全 tls 证书 网页浏览器 openssl
2021-08-24 20:13:02

如果这是一个愚蠢的问题,我很抱歉。我对这一切都很陌生。

我有大量的用户。我需要能够为各种内部域名生成 SSL 证书。所有这些证书都需要被浏览器接受。据我了解,我需要像本文所示生成证书颁发机构:https ://web.archive.org/web/20121016162010/http://www.tc.umn.edu/~brams006/selfsign.html

然后使用该证书颁发机构,我可以为我们需要支持的每个域签署一个签名请求。这将给我一个 X509 证书,我可以在我们的 Web 服务器上使用它。

所以,我的问题是:

  1. 为了让我的浏览器信任我的 CA 生成的所有证书,我需要将哪些生成的文件(安装、导入、接受等)放在哪里?我确定 WHERE 取决于浏览器和操作系统,对吧?
  2. 我需要让我的用户尽可能轻松地接受我的 CA。不幸的是,我没有能力自动推送任何东西。我能做的最好的事情就是提供一个链接。所以,我想知道是否可以创建一个通过 http(不安全)加载的 html 页面,该页面具有从其中一个安全服务器加载的 iframe。理论上,iframe 页面会给出某种消息并允许安装。我的外页可以说明用户需要做什么。那会起作用还是我错过了什么?如果他们确实接受了证书,它将适用于我的 CA 生成的所有证书还是仅适用于这个证书?
4个回答

就个人而言,我会从一个由已知且受信任的 CA 为一个域签名的 低成本或免费SSL 证书开始。

然后在他们的浏览器信任的那个 https 站点(并且他们可以识别为您组织的一个特定子域),给他们一个 https 链接以下载您的 CA 证书,并说明如何在所有各种浏览器中加载您的 CA 证书/他们可能会使用的操作系统。

例如,Firefox:http ://www.cyberciti.biz/faq/firefox-adding-trusted-ca/或在 google-chrome 中:导航到 chrome://chrome/settings/certificates

Internet Explorer 使用操作系统提供的设施;即,IE 将信任的“根 CA”是Windows将信任的根 CA,它们位于“根”证书存储区中。有关详细信息,请参阅此页面

Firefox 有自己的存储机制,不管主机操作系统能做什么。有关详细信息,请参见例如此页面

MacOS X 上的 Safari 依赖于操作系统提供的内容,它被称为“KeyChain”。参见例如这个页面

Chrome 倾向于使用本地操作系统提供的任何机制(Windows 上的 Root 存储,MacOS X 上的 KeyChain ......)。众所周知,这会根据版本而变化,因此很难保持最新状态。

这个网页试图跟踪如何在各种应用程序和操作系统中安装根证书,但它似乎有点旧,而且看起来没有积极维护。


注意:根 CA 是信任锚:机器信任的一切都来自这些根 CA。因此,它们是非常有价值的目标;攻击者只是希望能够将他们自己的根 CA 插入到许多用户系统的信任库中。相应地,培训您的用户将根 CA 添加到他们的商店并不是一个好主意。成功的人将证明他们容易受到根 CA 安装建议的影响......

既然您声明您的用户不在您的内部网络上,那么我必须推断他们在整个“互联网”上,并且您的 SSL 服务器可以在“公共”名称下访问(即使用存在于全球域名中的域系统)。因此,您可以使用来自常规 C​​A 的证书。有些是免费的这将为您节省很多精力,因为这样的 CA已经在每个人的信任库中都有自己的根 CA。像往常一样,最容易安装的系统是已经安装的系统。

如果您正在寻找一种低成本和低复杂性的解决方案,那么如何从真正的证书颁发者(例如 Godaddy)那里获得一个通配符证书,该证书已经被您的所有客户端浏览器信任。只要您的所有主机名都在同一个域上,这应该适合您。只要它们在同一个域中(例如 host1.myorg.com、host2.myorg.com、host3.myorg.com 等),您就可以将它用作任意数量的主机的证书。

像@Thomas Pomin 一样,如果您要求浏览器信任由您自己的 CA 签名的证书,我会提醒您要非常小心 - 特别是如果它们不属于您的内部网络。如果您对谁可以访问 CA 和创建证书的范围不是很小心,那么这可能会很快消失。(如果您想了解最近发布受信任证书可能出现什么问题的示例,请使用 Google turktrust。)

好的,正如您所说,它取决于浏览器或操作系统,如果尝试在浏览器中加载证书,有些人会询问用户是否要安装证书,而其他人则必须完全手动完成。一个只需要根证书。

您可以考虑的另一种选择是获得由另一个已受信任的 CA 签名的 CA 证书,但这可能超出您的价格范围。