我想知道通常如何在SSL连接建立中检查自签名证书。
让我们来看看self-signed certificates
self-signed certificate (例如,用OpenSSL创建)server接收到来自client的"ClientHello"消息时,他将其证书发送给客户端。ServerHelloDone消息发送到客户端,然后客户端需要验证证书。当客户端接收到服务器证书时,他验证这个证书的步骤是什么?我知道,通常不应该使用自签名证书,因为实际上没有第三方实例(CA)可以检查。
客户端只是接受服务器证书而不采取任何进一步步骤,还是客户端在建立连接之前已经提供了服务器“根”证书?
发布于 2015-01-14 14:29:57
当客户端接收到服务器证书时,他验证该证书的步骤是什么?
客户端执行证书链接引擎来验证证书。重要的检查是:
1)证书签字
2)证书主体。主题字段中的CN属性(或主题替换名称中的适当名称)必须与输入的URL匹配。例如,连接到www.example.com,则必须在Subject和/或SAN扩展中列出该名称。
3)证书有效性
4)证书撤销
5)到受信任根的证书链(以自签名形式表示)
6) RFC5280中定义的其他检查(包括但不限于:增强的密钥使用、策略约束、名称约束等)。
在自签名证书的情况下,证书链由单个元素-服务器证书组成.在这种情况下,客户端只跳过步骤4,因为不能撤消自签名证书.客户端必须将此自签名证书显式地信任为受信任的根证书,因为所有自签名证书都是根证书。
https://stackoverflow.com/questions/27929357
复制相似问题