【问题标题】:Get subject and issuer information from the X509*从 X509 获取主题和发行者信息*
【发布时间】:2016-03-24 18:50:15
【问题描述】:

我正在验证服务器上的客户端证书。

我使用了 SSL_CTX_set_verify 并有一个有效的回调 API,在其中我正在验证客户端证书的到期日期和一些其他参数。我需要提取客户端证书的“颁发者”和“颁发者”值。

回调函数是这样的

int certificateVerificationCallBack(int preverify_ok, X509_STORE_CTX *ctx)
{
    X509* cert = X509_STORE_CTX_get_current_cert(ctx);
}

我正在将客户端证书详细信息填写到 X509 指针中,并且也能够获取到期日期(直接访问)。但我无法弄清楚要使用什么 OpenSSL API 来获取“颁发者”和“颁发者”。

【问题讨论】:

  • 另请参阅 OpenSSL wiki 上的 SSL/TLS Client。它转储了许多 X509 字段。

标签: c++ ssl openssl


【解决方案1】:

如果您想要证书的主题名称和颁发者名称,您需要使用 X509_get_subject_name 和 X509_get_issuer_name API。它们采用 X509 指针并返回各自的名称。

更多信息可以获取herehere

【讨论】:

  • 谢谢!有效。虽然要提取实际字符串,但需要执行以下操作 - char *subj = X509_NAME_oneline(X509_get_subject_name(err_cert), NULL, 0); char *issuer = X509_NAME_oneline(X509_get_issuer_name(err_cert), NULL, 0);
猜你喜欢
  • 2011-09-16
  • 1970-01-01
  • 2013-07-09
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多