2011-05-22 294 views
5

我正在使用HTTPS客戶端,並且設法建立安全連接並使用以下方式獲取X509證書:
X509 *cert = SSL_get_certificate(ssl);(ssl是SSL *)。

如何將證書保存到文件? 另外,我需要從證書中獲得「Subject DN」和「Issuer DN」字段。將X509證書保存到文件

回答

7

- 如何將證書保存到文件?

#include <openssl/pem.h> 
int PEM_write_X509(FILE *fp, X509 *x); 

- 另外,我需要得到 「主題DN」,並從證書 「頒發者DN」 字段。

#include <openssl/x509.h> 
X509_NAME *  X509_get_issuer_name(X509 *a); 
X509_NAME *  X509_get_subject_name(X509 *a); 
+2

'X509_NAME_oneline()'用於將'X509_NAME'結構轉換爲純文本字符串。 – caf 2011-05-23 05:35:44

2

將證書編碼到一個文件,你可以使用這個功能的OpenSSL:

int i2d_X509_fp(X509 *x, FILE *fp); 

它編碼使用DER編碼由x指出到文件的X509結構。有關OpenSSL API reference的更多詳細信息。

+0

正確的形式是'int i2d_X509_fp(FILE * fp,X509 * x);' – Kyrol 2017-08-16 20:44:54