Lev*_*han 3 ssl openssl certificate x509
我想知道在建立 SSL 连接时通常如何检查自签名证书。
让我们看一下self-signed certificates:
客户端和服务器提供self-signed certificate其私钥(例如使用 OpenSSL 创建的)
当server收到"ClientHello"来自 的消息时client,他正在将其证书传输给客户端。
ServerHelloDone发送到客户端,然后客户端需要验证证书。当客户端收到服务器证书时,他如何验证该证书?
我知道通常不应该使用自签名证书,因为事实上没有第三方实例(CA)可供检查。
客户端是否只是接受服务器证书而不进行任何进一步的步骤,或者客户端在建立连接之前是否已经提供了服务器“根”证书?
当客户端收到服务器证书时,他如何验证该证书?
客户端执行证书链引擎来验证证书。重要的检查是:
1)证书签名
2)证书主题。主题字段中的 CN 属性(或主题备用名称中的适当名称)必须与输入的 URL 匹配。例如,您连接到 www.example.com,则该名称必须列在主题和/或 SAN 扩展名中。
3) 证书有效性
4) 证书吊销
5) 证书链至受信任的根(以自签名形式呈现)
6) RFC5280中定义的其他检查(包括但不限于:增强密钥使用、策略约束、名称约束等)。
在自签名证书的情况下,证书链由单个元素组成——服务器证书。在这种情况下,客户端仅跳过步骤 4,因为自签名证书无法撤销。并且此自签名证书必须被客户端明确信任为受信任的根证书,因为所有自签名证书都是根证书。
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |