![](/img/trans.png)
[英]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.