如何创建子个人数字证书?

How to create a sub-personal digital certificate?

我有个人的、CA 颁发的数字证书。

如何制作我将用这个受信任的证书签名的子证书?

所以链看起来像这样:VeriSign <- Local CA <- ME <- [ Laptop 1, Laptop 2 ]

您不能创建子证书,因为证书只能由证书颁发机构创建。 X509v3 PKIX 配置文件定义了基本约束证书扩展,指定证书所有者类型:CA 或终端实体。缺少证书扩展名或 Subject Type = End entity 表示您不是 CA,并且不允许签署其他证书。

p.s。从技术上讲,您可以签署其他证书,但这些证书永远不会通过链验证逻辑,并将被永久拒绝。

不过,您可以从商业 CA 购买合格的 CA 证书,此过程称为证书颁发机构根签名:http://social.technet.microsoft.com/wiki/contents/articles/5973.certification-authority-root-signing.aspx

要使用您的证书签署证书,您的证书必须具有 x509 基本约束扩展。

这是因为证书基本上是一种身份证明,要颁发 ID,您需要经过认证,这样每个人都知道您不是在未经检查的情况下随机颁发证书 people/servers people/servers 的身份。这将允许您随时对 HTTPS 流量执行 MITM 攻击(只需为域颁发证书然后离开)。

是的,一旦人们看到您这样做,您可能会被撤销,但出于两个主要原因,PKI 中的撤销并不完美。首先,任何人都可能需要很长时间才能意识到您正在颁发随机证书,因为看起来没有任何问题(忽略证书固定,因为并非所有浏览器都这样做)。其次,即使在它被吊销之后,大多数浏览器也会在吊销信息上失败(这意味着如果它们无法到达 CRLs/OCSP,它们会认为证书没问题),因此您可以只对某人进行 DoS。

您将必须推出自己的 CA 来颁发证书,如果您希望它们在您的私人域之外受到信任,您将必须遵守关于您颁发的证书的严格规则并接受定期审核以确保您遵守那些规则。如果您只是希望它们在私有域中受信任,那么您甚至不需要与另一个 CA 交谈,您只需将您的 CA 安装到该域的信任库中(或安装到域中的个人计算机上 - 取决于您的设置).