1
如何捕獲域名不匹配?捕獲證書域名不匹配openssl
我使用SSL_get_peer_certificate(ssl)
來獲得證書,然後SSL_get_verify_result(ssl);
來驗證證書。我如何在這裏捕獲域名不匹配,因爲我目前沒有捕獲域名。
如何捕獲域名不匹配?捕獲證書域名不匹配openssl
我使用SSL_get_peer_certificate(ssl)
來獲得證書,然後SSL_get_verify_result(ssl);
來驗證證書。我如何在這裏捕獲域名不匹配,因爲我目前沒有捕獲域名。
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);
調用X509_NAME_get_index_by_NID
再次使用新lastpos將給我們接下來的CN直到它返回-1,說,有沒有更多的CN的可用。
該功能給出X509_NAME_ENTRY *
,可以使用ASN1_STRING_to_UTF8
將其轉換爲char *
。
一定要考慮SAN和CN的通配符