限制根证书链

信息安全 验证 证书 证书颁发机构 x.509
2021-08-30 09:53:52

我正在玩弄在我的(爱好)网站上运行一个迷你 CA 的想法,可能只在内部与一些选定的开发人员内部使用,用于内部电子邮件、客户端身份验证、登台/开发服务器证书等。我不愿意扩展这种对我的技术意识更强的用户的身份验证方式作为可选的身份验证方案(尽管有好处),仅仅是因为它要求用户完全接受我的根证书,因此我可以在技术上MitM 他们的贝宝会话或其他东西。在他们看来,我当然不会信任 examplehobbysite.com 作为验证 paypal.com(或任何其他服务器)身份的有效第三方,但我可以很高兴信任它的客户端身份验证该站点上的用户(S/MIME 等,他们的 CN 是他们站点的用户名或其他东西)。

简而言之,有什么方法可以创建一个根证书,该证书只能用于颁发 X.509 证书以用于 S/MIME、客户端身份验证等,并且不能作为服务器 (SSL) 证书有效?

3个回答

在 Firefox 中,您可以编辑授予证书的信任级别。转到高级选项,加密,然后在 CA 列表中,单击任何证书,然后单击“编辑信任”。

这为您提供了一些灵活性。

在此处输入图像描述

我正在尝试同样的事情。我正在为这个爱好做很多研究,你会在这里找到很多需要考虑的事情:

建立脱机根和中间证书颁发机构 (CA) 的清单

简而言之,有什么方法可以创建一个根证书,该证书只能用于颁发 X.509 证书以用于 S/MIME、客户端身份验证等,并且不能作为服务器 (SSL) 证书有效?

由于您想将自己限制在 S/MIME 和其他一些目的上,我建议您获得这些目的的明确列表,获取 OID 并使用约束委派并设置增强密钥使用 (EKU)作为适当的。

只要知道,每次您改变主意并编辑或重新发布 RootCA 时,您都会使 CRL OCSP 撤销变得更加复杂,因为 CryptoAPI 必须分析多个根路径。

使用您的根 CA 作为颁发者库。但是让他们的浏览器只信任中间体。