我想下载特定主机名的证书并检测 CA 在颁发它时是否使用了 EV(扩展验证)。到目前为止,我找不到任何将证书标识为 EV 的东西。有什么办法可以做到这一点?理想情况下使用 OpenSSL?
如何使用 openssl 检测 CA 是否将 EV 用于证书
信息安全
tls
证书
证书颁发机构
openssl
2021-08-19 23:12:25
1个回答
请注意,EV 证书在结构上没有区别——它们只是根据不同的政策颁发的证书。所以你必须检查政策。请参阅http://en.wikipedia.org/wiki/Extended_Validation_Certificate#Extended_Validation_certificate_identification
您将需要进行相当广泛的表查找,恐怕不是 openssl 原生的。
针对以下一些评论:
此属性位于“X509v3 扩展”字段中。x509v3_config(5)笔记
证书政策。
这是一个原始扩展。可以使用适当的语法设置此扩展的所有字段。
如果您遵循 PKIX 建议并仅使用一个 OID,那么您只需包含该 OID 的值。可以设置多个 OID,以逗号分隔,例如:
certificatePolicies= 1.2.4.5, 1.1.3.4
这就是他们进入证书的方式。这是证书中的样子:例如,如果您检查保护https://www.globalsign.com/en/的 GlobalSign 证书:
echo | openssl s_client -connect www.globalsign.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > globalsign.pem
这会在文件中捕获证书。可以查看,
openssl x509 -text -noout -in globalsign.pem
大约在输出的中途,[...]
X509v3 扩展:
X509v3 密钥用法:关键
数字签名、密钥加密
X509v3 证书策略:
政策:1.3.6.1.4.1.4146.1.1
CPS:https://www.globalsign.com/repository/
[...] 该策略 OID 对应于 globalsign 的 EV OID(并且在维基百科的表格中。)。正如迈克指出的那样,http ://oid-info.com/get/1.3.6.1.4.1.4146.1.1将其描述为{iso(1) identify-organization(3) dod(6) internet(1) private (4) 企业(1) 4146 certificate-policies(1) extended-Validation-SSL(1)}并且 4146 是 GlobalSign NV/SA。