捕获证书域名不匹配openssl

时间:2012-07-18 10:54:29

标签: openssl certificate x509certificate

如何识别域名不匹配?

我使用SSL_get_peer_certificate(ssl)获取证书,然后SSL_get_verify_result(ssl);验证证书。我怎么能在这里抓住域名不匹配,因为我目前没有抓住它。

1 个答案:

答案 0 :(得分:0)

SSL_get_verify_result不会进行主机名不匹配搜索。我们必须手动考虑证书中的多个CN和主题替代名称(SAN)。

可用于处理多个CN的功能是:

int lastpos = -1;
lastpos=X509_NAME_get_index_by_NID(X509_get_subject_name(cert), NID_commonName, lastpos);
X509_NAME_get_entry(X509_get_subject_name(cert), lastpos);

使用新的lastpos再次调用X509_NAME_get_index_by_NID会给我们下一个CN,直到它返回-1,表示没有更多的CN可用。

此函数提供X509_NAME_ENTRY *,可以使用char *将其转换为ASN1_STRING_to_UTF8

请务必考虑SAN和CN的

中的通配符