2012-06-22 58 views

回答

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 *,其可以使用ASN1_STRING_to_UTF8被轉換爲char *

一定要考慮SAN和CN的通配符