我正在尝试从我的客户端证书中检索主题备用名称。通过运行此命令,我可以看到 SAN:
openssl x509 -noout -text -in certname.cert.pem
...
X509v3 Subject Alternative Name:
IP Address:10.10.10.10
在 C 文件中,我试图检索客户端 SAN,以便我可以使用服务器 IP 对其进行验证。这是我的尝试:
cert = X509_STORE_CTX_get_current_cert(x509Ctx);
int i;
int san_names_nb = -1;
STACK_OF(GENERAL_NAME) *san_names = NULL;
// Try to extract the names within the SAN extension from the certificate
san_names = (GENERAL_NAME*)X509_get_ext_d2i((X509 *) cert, NID_subject_alt_name, NULL, NULL);
if (san_names == NULL)
{
return Error;
}
现在,我的代码返回错误,因为 san_names 为 NULL。任何指导将不胜感激。谢谢!