SSL:了解自签名证书

时间:2015-01-13 18:51:03

标签: ssl openssl certificate x509

我想知道如何在SSL连接建立中检查自签名证书。

让我们看看self-signed certificates

  • 客户端和服务器提供self-signed certificate及其私钥(例如使用OpenSSL创建)

  • server收到来自"ClientHello"的{​​{1}}讯息时,他正在将证书传送给客户。

  • client消息被发送到客户端,然后客户端需要验证证书。

当客户端收到服务器证书时,他验证此证书的步骤是什么? 我知道通常不应该使用自签名证书,因为没有第三方实例ServerHelloDone可以检查。

客户端是否只是接受服务器证书而没有任何进一步的步骤,或者客户端是否已经提供服务器" root"连接建立之前的证书?

1 个答案:

答案 0 :(得分:2)

  

当客户端收到服务器证书时,他验证此证书的步骤是什么?

客户端执行证书链引擎以验证证书。重要的检查是: 1)证书签名 2)证书科目。 “主题”字段中的CN属性(或“主题备用名称”中的相应名称)必须与输入的URL匹配。例如,您连接到www.example.com,则此名称必须列在主题和/或SAN扩展中。 证书有效性 4)证书撤销 5)证书链直到受信任的根(以自签名形式呈现) 6)RFC5280中定义的其他检查(包括但不限于:增强密钥使用,策略约束,名称约束等)。

在自签名证书的情况下,证书链由单个元素 - 服务器证书组成。在这种情况下,客户端仅跳过步骤4,因为无法撤消自签名证书。此自签名证书必须由客户端明确信任为受信任的根证书,因为所有自签名证书都是根证书。