从这里为函数"SSL_get_verify_result“提供的打开的ssl文档中:http://www.openssl.org/docs/ssl/SSL_get_verify_result.html,它指出错误在这里:http://www.openssl.org/docs/apps/verify.html
那么,如果存在SSL主机不匹配错误,将调用这些错误中的哪一个?即证书中的主机名和请求中的主机名不同?
还有,这些错误中的哪些实际上可以安全地忽略?
发布于 2012-08-10 16:55:07
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中的通配符
https://stackoverflow.com/questions/11154735
复制相似问题