自签名CA和自签名证书之间的区别

问题描述:

我不清楚CA密钥和证书之间的区别。 CA密钥不仅仅是一个证书吗?让我试着用一个例子来澄清。自签名CA和自签名证书之间的区别

我有一个客户端和一个服务器。我只是试图验证我与服务器的连接,而不是试图建立对其他人的信任,所以我不在乎使用真正的CA进行签名。

选项1:生成自签名CA(SSCA),并用它来签署证书(Ç)。然后,我将ssCA安装到我的客户端的根密钥库中,并将我的服务器设置为使用证书C

选项2:生成自签名证书(SSC)。将SSC安装到我的客户机上的根密钥库中。安装我的服务器以使用证书SSC

第二个选项似乎是一个更简单的过程。如果仍然有效?

+0

真的是个好问题! – 2016-05-23 15:40:49

两个选项都有效,选项2更简单。

当您需要多个证书时,选项1(设置您自己的CA)更可取。在公司中,您可以设置自己的CA,并将该CA的证书安装在所有客户端的根密钥库中。这些客户端将接受由您的CA签署的所有证书。

选项2(自签名没有CA的证书)更容易。如果你只需要一个证书,那么这就足够了。将它安装到客户的密钥库中,就完成了。但是当你需要第二个证书时,你需要在所有的客户端上重新安装。

下面是进一步信息的链接:(关于“CA密钥”)​​Creating Certificate Authorities and self-signed SSL certificates

+2

好答案不错! – 2016-05-23 15:41:13

您必须始终拥有根CA,CA具有一个密钥,可用于签署较低级别的证书和可嵌入客户端上接受的根证书中的根证书,并用于验证下级证书来检查它们是否有效。自签名意味着你是你自己的CA.每当创建自签名证书时,您都会创建一个ca,然后使用该CA签署站点证书。

首先,关于密钥和证书之间的区别,也有谈论公钥证书(通常当使用3个X. 509):公钥,私钥和证书。 公钥和私钥组成一对。您可以使用私钥进行签名和解密,您可以验证(签名)并使用公钥进行加密。公钥旨在分发,而私钥旨在保密。

公钥证书是公钥与各种信息的组合(主要是关于密钥对的所有者的身份,谁控制私钥),这种组合使用私人密钥证书的签发者。 X.509证书具有主题专有名称和发行者专有名称。颁发者名称是颁发证书的实体的证书的主题名称。自签证书是发行人和主题相同的特殊情况。 通过签署证书的内容(即签发证书)时,发行者断言其内容,特别是在密钥,身份(主题)和各种属性(其可以指示证书的使用意图或范围)之间的绑定。

最重要的是,PKIX规范定义了一个扩展(指定证书的一部分),它指示证书是否可以用作CA证书,也就是说它是否可以用作另一证书的颁发者。

由此,您可以在最终实体证书(您要验证的用户或服务器证书)和您信任的CA证书之间建立证书链。在您的服务的最终实体证书与您信任的CA证书之间可能存在中间CA证书(由其他CA证书颁发)。您不必严格需要顶部的根CA(自签名CA证书),但通常情况下(如果您愿意,可以选择直接信任中间CA证书)。

对于您的用例,如果为特定服务生成自签名证书,是否具有CA标志(基本约束扩展名)并不重要。您需要将其作为CA证书才能颁发其他证书(如果您想构建自己的PKI)。如果您为此服务生成的证书是CA证书,则不应该造成任何伤害。更重要的是,您可以将客户端配置为信任该特定服务器的证书的方式(例如,浏览器应该允许您轻松地制定明确的例外)。如果配置机制遵循PKI模型(不使用特定的例外),由于不需要构建链(只有一个证书),您应该能够直接导入证书作为信任锚的一部分您的客户端,无论它是否为CA证书(但这可能取决于客户端的配置机制)。

+0

感谢您的信息。我会给Helge一个正确的答案,因为它来得早,而且很简单。但是,这是很好的知道。 – Pace 2010-10-26 16:43:29

您可以openssl x509 -noout -text -in $YOUR_CERT看到文件的内容之间的差异:

在自签名CA,你可以看到:

X509v3 extensions:               
     X509v3 Basic Constraints: 
      CA:TRUE, pathlen:0 

而在你的自签名证书,它是:

X509v3 extensions:               
     X509v3 Basic Constraints: 
      CA:FALSE