我正在考虑构build一个root-CA,以便与我放在一起的东西一起使用。
每个客户都会向我注册他们自己的服务器,我会将他们的证书签名为(id).example.com的持有者。 每个客户都将安全地下载我的CA证书,并将其设置为仅适用于example.com和子域。
我如何将自己的CA-cert设置为仅适用于example.com? 我的客户不会想要相信我签署(说)paypal.com,只是域名,它是我做的子域名。 我也不想成为有人可以强迫我签名的证书。
(我现在正在看openssl,但是任何替代方法都是可以的,如果只是一个命令行选项,那么它现在正在削弱我)。
PKI没有限制证书颁发机构在某些领域签署证书的方法。 一旦你信任一个CA,你无条件地信任它产生的一切。 没有CA的条件信任,只是证书。 这实际上意味着,如果您信任公司的CA,您还将信任由公司CA为mail.google.com签署的证书。 正是由于这个原因,扩展validation证书变得风靡一时。
要求客户信任CA是一个重要的要求。 如果只有几台服务器需要信任,那么这是一回事,但是要求整个基础架构相信这个服务器是我所说的大多数公司都会畏惧的。
名称约束扩展属性可用于限制使用证书对特定域进行签名。 这是PKI基础设施的一部分(RFC 5280 – 第4.2.1.10节)。 它在浏览器中的支持程度完全是另一回事。