我不清楚CA密钥和证书之间的区别。CA密钥不仅仅是证书吗?让我尝试用一个例子来阐明。
我有一个客户端和一个服务器。我只是在尝试验证与服务器的连接,而不是在建立对他人的信任,因此我不关心使用真正的CA进行签名。
选项1:生成一个自签名CA(ssCA),并使用它来签署证书(C)。然后我安装SSCA到我的客户机和设置我的服务器来使用证上的根密钥库Ç。
选项2:生成自签名证书(SSC)。将SSC安装到客户端上的根密钥库中。设置我的服务器以使用证书SSC。
第二种选择似乎更简单。那应该仍然有效吗?
Answers:
这两个选项均有效,选项2更简单。
如果需要多个证书,则最好使用选项1(设置自己的CA)。在公司中,您可以设置自己的CA并将该CA的证书安装在所有客户端的根密钥库中。这些客户端将接受您的CA签名的所有证书。
选项2(无需CA即可自签名证书)更加容易。如果您只需要一个证书,那就足够了。将其安装在客户端的密钥库中,就可以完成。但是,当您需要第二个证书时,则需要在所有客户端上再次安装该证书。
这是包含更多信息的链接:创建证书颁发机构和自签名SSL证书
首先,关于密钥和证书之间的区别(关于“ CA密钥”),在谈论公钥证书(通常为X.509)时使用了3个部分:公钥,私钥和证书。公钥和私钥形成一对。您可以使用私钥签名和解密,也可以使用公钥进行验证(签名)和加密。公钥旨在分发,而私钥旨在保持私有。
公钥证书是公钥和各种信息(主要是关于密钥对所有者的身份,控制私钥的人)之间的组合,该组合是使用密钥的发行者的私钥签名的证书。X.509证书具有主题专有名称和颁发者专有名称。颁发者名称是颁发证书的实体的证书的主体名称。自签名证书是发卡行和主题相同的一种特殊情况。通过签署证书的内容(即颁发证书),发行者可以声明其内容,尤其是密钥,身份(主题)和各种属性(可以指示证书的使用意图或范围)之间的绑定。证书)。
最重要的是,PKIX规范定义了一个扩展(给定证书的一部分),该扩展指示一个证书是否可以用作CA证书,即它是否可以用作另一个证书的颁发者。
由此,您可以在最终实体证书(对于用户或服务器要验证的证书)和您信任的CA证书之间构建证书链。服务的最终实体证书和您信任的CA证书之间可能存在中间的CA证书(由其他CA证书发行)。您不一定严格要求在顶部使用根CA(自签名CA证书),但通常是这样(您可以选择直接信任中间CA证书)。
对于您的用例,如果您为特定服务生成自签名证书,则它是否具有CA标志(基本约束扩展)并不重要。您将需要它是CA证书才能发布其他证书(如果要构建自己的PKI)。如果您为此服务生成的证书是CA证书,则不会造成任何损害。更重要的是,可以配置客户端以信任该特定服务器的证书的方式(例如,浏览器应让您轻松地做出明确的例外)。如果配置机制遵循PKI模型(不使用特定例外),则由于不需要构建链(仅包含一个证书),则应该能够将证书直接导入为证书的信任锚的一部分。您的客户,无论是