簡體   English   中英

Java X509證書發行者驗證

[英]Java X509Certificate issuer validation

我正在使用X509Certificates進行通信,並且正在努力驗證證書。

我已經獲得了一個自簽名的“父”證書,該證書用於對所有其他證書進行簽名。

這已經完成,我已經獲得了證書。

在下一步中,另一部分是對我的證書簽名,然后將其存儲。

這是第一個問題:返回的證書與我創建的證書不對應,因此公鑰有所不同。 現在如何使用簽名證書更新密鑰庫? 因此,我需要證書中的私鑰,但需要返回的證書中的簽名版本。

下一個問題:需要對簽名證書進行驗證並對照父證書進行檢查,但是這樣做時,如下所示:

X509Certificate parent;
X509Certificate certToVerify;
parent.verify(certToVerify.getPublicKey());

拋出,簽名錯誤,java.security.SignatureException:簽名不匹配。

還有其他檢查發行人或驗證證書的方法嗎? 有什么我想念的嗎?

最好的,亨里克

對於第一期,您應該取回已簽名的證書以響應證書簽名請求(CSR)。 例如,您生成了一個私鑰,然后創建了一個CSR。 您將該CSR(包含您的公共密鑰)發送給證書頒發機構(CA)。 CA驗證您的身份並向您返回簽名證書。 該簽名證書應包含與CSR中相同的SAME公鑰。 您可以獲取已簽名的證書並將其導入到密鑰庫中。 如果您已經具有該私鑰的自簽名證書,則導入的已簽名證書應替換它。

對於第二期,您需要切換語句。 您需要使用父母的公鑰來驗證簽名證書。

X509Certificate parent = ...;
X509Certificate certToVerify = ...;
certToVerify.verify(parent.getPublicKey());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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