我有一个指向TLS证书的指针,我需要获取commonName属性;
我首先使用函数d2i_X509创建X509对象;
x = d2i_X509(NULL, &p, certificate_lenght);
if (x == NULL)
return https_failure;
比调用函数X509_NAME_get_text_by_NID获取commonName
X509_NAME_get_text_by_NID(X509_get_subject_name(x),NID_commonName, hc->https_domain_name, 256);
它适合我,但我担心表现。我想,当我只需要commonName时,会解析所有证书对象。是否有更好的方法可以更有效地获取commonName。
答案 0 :(得分:3)
使用OpenSSL高级API没有更有效的方法。如果您真的对能够获得最佳性能感兴趣,则需要使用低级ASN.1解析API。 但请记住,如果不完全解析证书就无法完全验证证书,因此我会关注仅提取CN的安全隐患。