[英]Convert x509 certificate in PEM format to x509 structure format of Openssl
[英]programmatically convert an x509 certificate into human readable format using openssl api
在基于C的openssl客户端中,我能够与ssl服务器建立ssl连接,并使用检索服务器提供的ssl证书
X509* cert = SSL_get_peer_certificate( SSL *ssl);
现在,我想以易于阅读的形式转换此X509证书的内容。 是的,我可以使用以下命令简单地显示在控制台上:
X509_print(stdout,cert);
但我不想那样打印。 我想将证书内容捕获到一些char缓冲区中,以便在以自己选择的方式显示它之前可以进一步处理它。
尽我所能Google搜索,仍然一无所知。
有谁可以帮助我解决这个问题? 提前致谢。
获得X.509证书后,您可以使用各种X509函数,例如X509_get_version,X509_get_notBefore,X509_get_notAfter,X509_get_subject_name等。您可以在此处查看x509.h。
在某些情况下,例如X509_get_subject_name,您将使用X509_NAME。 在X509_NAME上,您可以使用X509_NAME_get_text_by_NID提取诸如“常用名”(通过使用NID_commonName),“组织”等字段。
这取决于您要显示的所有信息。 没有黑客。 这只是编程。 如果您需要更多信息,我也可以发布代码示例。 但是我认为这必须足以开始。
没有“ X.509证书的可读格式”之类的东西,这就是为什么您什么也找不到的原因。 每个软件提取不同的信息并以不同的方式显示它。 如另一个答案中所指出的,您可以通过调用各种函数来提取数据,然后进行打印。 或者,您可以将X509_print的输出定向为处理stdout以外的其他内容,以获取OpenSSL产生的内容。
X509_print
应该采用BIO
第一个参数。 X509_print_fp
接受FILE*
类的stdout
。
使用X509_print
(生物风味)将其打印到生物内存中,然后使用BIO_get_mem_data
提取内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.