2017-04-24 82 views
2

我正在使用已驗證證書中存在的CRL對證書吊銷檢查進行編程。 對於支票,我還需要發行人證書。以編程方式獲取頒發者證書C++

我在哪裏可以找到發行人的URL地址?

我知道我可以使用此功能得到發行人的名字:

X509_NAME *X509_get_issuer_name(const X509 *); 

但我需要得到的URL,從那裏我能得到發行人證書調用X509_CRL_verify(X509_CRL *, EVP_PKEY *) 功能。

+0

您可能想避免接受答案。非現場鏈接並不真正被認爲是堆棧溢出的答案。沒有人向您提供該部分任務的代碼。 – jww

回答

2

有沒有這樣的事情作爲發行人的網址,我不明白你爲什麼需要一個。 對於CRL檢查,您需要改爲包含在原始證書中的CRL分發點。有關使用X509_get_ext_d2iNID_crl_distribution_points從代碼中提取這些信息的代碼,請參閱C++ Check CRL For Revocation

+0

這就是我正在查看的確切源代碼。雖然有需要發行者的X509文件的函數is_revoked_by_crl(X509 * x509,X509 *發行者,X509_CRL * crl_file) 。我唯一能想到的就是我所在機器的整個證書鏈。 – Dracke

+0

@Dracke:所以你不需要發行者的URL,而是發行者的證書,這是非常不同的,即鏈接與實際數據。爲了使用由發行者簽署的CRL,您需要信任發行者,這意味着證書應該位於您的信任存儲中(即通常使用openssl的特殊文件或目錄)。如果您構建證書鏈,則無論如何您都應該執行此操作來驗證證書,您將獲得此證書。有關詳細信息,請參閱[使用OpenSSL API以編程方式驗證證書鏈](https://stackoverflow.com/questions/16291809/)。 –

+0

如果我正在對輸入證書進行驗證,是否可以使用issuer參數跳過crl撤銷? – Dracke

相關問題