首先,关于密钥和证书之间的区别(关于“ CA密钥”),在谈论公钥证书(通常为X.509)时使用了3个部分:公钥,私钥和证书。公钥和私钥形成一对。您可以使用私钥签名和解密,也可以使用公钥进行验证(签名)和加密。公钥旨在分发,而私钥旨在保持私有。
公钥证书是公钥和各种信息(主要是关于密钥对所有者的身份,控制私钥的人)之间的组合,该组合是使用密钥的发行者的私钥签名的证书。X.509证书具有主题专有名称和颁发者专有名称。颁发者名称是颁发证书的实体的证书的主体名称。自签名证书是发卡行和主题相同的一种特殊情况。通过签署证书的内容(即颁发证书),发行者可以声明其内容,尤其是密钥,身份(主题)和各种属性(可以指示证书的使用意图或范围)之间的绑定。证书)。
最重要的是,PKIX规范定义了一个扩展(给定证书的一部分),该扩展指示一个证书是否可以用作CA证书,即它是否可以用作另一个证书的颁发者。
由此,您可以在最终实体证书(对于用户或服务器要验证的证书)和您信任的CA证书之间构建证书链。服务的最终实体证书和您信任的CA证书之间可能存在中间的CA证书(由其他CA证书发行)。您不一定严格要求在顶部使用根CA(自签名CA证书),但通常是这样(您可以选择直接信任中间CA证书)。
对于您的用例,如果您为特定服务生成自签名证书,则它是否具有CA标志(基本约束扩展)并不重要。您将需要它是CA证书才能发布其他证书(如果要构建自己的PKI)。如果您为此服务生成的证书是CA证书,则不会造成任何损害。更重要的是,可以配置客户端以信任该特定服务器的证书的方式(例如,浏览器应让您轻松地做出明确的例外)。如果配置机制遵循PKI模型(不使用特定例外),则由于不需要构建链(仅包含一个证书),则应该能够将证书直接导入为证书的信任锚的一部分。您的客户,无论是