簡體   English   中英

使用openssl api以編程方式將x509證書轉換為可讀格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM