我正在验证服务器上的客户端证书。
我使用了 SSL_CTX_set_verify 并有一个有效的回调 API,在其中我验证客户端证书的到期日期和其他一些参数。我需要提取客户端证书的“颁发者”和“颁发给”值。
回调函数是这样的
int certificateVerificationCallBack(int preverify_ok, X509_STORE_CTX *ctx)
{
X509* cert = X509_STORE_CTX_get_current_cert(ctx);
}
Run Code Online (Sandbox Code Playgroud)
我将客户端证书详细信息填充到 X509 指针中,并且也能够获取到期日期(直接访问)。但我无法弄清楚使用什么 OpenSSL API 来获取“发布者”和“发布者”。
如果您需要证书的使用者名称和颁发者名称,则需要使用X509_get_subject_name()和X509_get_issuer_name()API。它们采用 X509 指针并返回各自的名称。