2009-01-12 94 views
6

如何通過命令行驗證針對Java證書存儲的X509(或DER格式)證書?通過CLI驗證針對Java證書存儲的證書

我已經看過使用keytool實用程序,但它看起來像只處理導入/導出/顯示功能(無驗證)。

編輯:它看起來好像keytool可以用於驗證,但只有當嘗試導入。我想提出這個問題的一個更好的方法是是否有更加被動的方法(如:不修改密鑰庫)。謝謝!

回答

2

此頁面可以簡單化:

http://java.sun.com/docs/books/tutorial/security/toolfilex/rstep1.html

但它看起來並不像即使密鑰工具導入做證書的真實驗證。我沒有看到任何關於驗證傳入證書的簽名與另一個可信證書的簽名的描述。

jarsigner將驗證簽名jar上的簽名,但不會執行任何操作來驗證用於簽署jar的證書上的簽名。

恐怕你要麼寫一個工具來做驗證,要麼找一個能做到的商業工具。我會認爲一些PKI工具包會有一個證書驗證工具可以做到這一點。

+0

我認爲你是對的,Keytool不會支持我想要做的事情。我們最終選擇了自己的util,尤其是因爲Keytool沒有簽名,我們希望能夠在運行之前驗證可執行文件。 – Brian 2009-11-09 17:23:13

10

您可以使用keytoolexport將Java密鑰庫中所需的證書(您需要驗證的證書中的證書)用於X.509文件。然後,將它們連接在一起成爲一個文件。最後,使用openssl進行驗證。

openssl verify -CAfile concatenated-certs.crt cert-to-verify.crt 

不是一個完美的解決方案,因爲它涉及的彈出證書走出信任的,但它應該工作給你開始用什麼。

+1

這適用於我,但請注意openssl需要PEM格式的證書而不是DER(這是keytool默認使用的) – Greg 2012-03-10 17:20:32