如何配置我的系统以信任特定域子集的 CA?

如何配置我的系统以信任特定域子集的 CA?

我所在的公司有许多可通过 HTTPS 访问的内部 Web 服务。这些服务使用由内部证书颁发机构签名的 SSL/TLS 证书,该证书仅受我公司颁发的计算机信任。有时,我需要从家里的个人计算机访问这些服务。可以理解的是,这会触发浏览器的安全警告。到目前为止,我一直忽略这些警告,但最近我开始对这种做法感到有点不安,因为它使我的连接容易受到中间人攻击。

为了解决这个问题,我想信任我公司在我家的电脑上使用的根证书。但是,为了遵循最小特权原则,我只希望该 CA 对我公司控制的域(例如 *.internal.examplecompany.com)值得信任。我该怎么做?我感兴趣的以这种方式配置的主计算机正在运行 Ubuntu 12.04 LTS。(我也有兴趣对运行 Windows 8 和 Android 的其他设备执行此操作,但为了避免这个问题太宽泛,现在不会询问这些设备。)

答案1

标准浏览器或 SSL 客户端中根本没有内置任何功能来允许这样做。基本上,CA 要么完全受信任,要么完全不受信任。

我认为可能有某种插件可以实现这一点,但我不知道。

答案2

有时,我需要从家里的个人电脑访问这些服务。

这取决于使用服务的软件。就浏览器而言……

我想信任我公司在我家的电脑上使用的根证书。但是,为了遵循最小权限原则,我只希望我公司控制的域(例如 *.internal.examplecompany.com)信任该 CA。我该怎么做?

你不能。浏览器安全模型(这是真实存在的)以 CA Zoo 为中心,任何 CA 都可以认证任何网站(即使是错误的 CA)。显然,没有人有兴趣改变这种模式。提案:将 HTTP 标记为不安全

开放式问题:您认为浏览器会支持除 CA Zoo 之外的其他根信任模型吗?

Chromium 团队的答案提案:将 HTTP 标记为不安全

Chromium 没有这个计划

相关内容