2012-10-10 247 views
1

我有一個webstart應用程序,我想在連接到服務器時執行客戶端身份驗證。我創建了使用certmgr.exe安裝的pkcs12證書,並且它工作正常。 我想爲使用該應用程序的每個客戶端執行操作。我應該怎麼做?如果我分發證書SSL證書錯誤

我得到一個bad_certificate錯誤。我知道證書沒有問題,因爲如果您使用瀏覽器安裝證書,它就會起作用。

我創造了使用公鑰

keytool -export -alias myKey -keystore abc.p12" -storetype PKCS12 -storepass mypassword -rfc -file abc.cer

然後我採用進口此文件到我的服務器的密鑰庫進行相互驗證:

的keytool -import -v -file abc.cer -keystore C:\ apache-tomcat-7.0.26 \ tomcat.keystore「-storepass mypassword

之後,如果我在certmgr中安裝了abc.p12證書,它工作正常。

爲了能夠從Java做到這一點,我需要一個信任庫。我創建了一個信任,我導入使用

>keytool -import -keystore client-truststore.jks -file abc.cer

如果我嘗試訪問使用

-Djavax.net.ssl.keyStore=abc.p12 -Djavax.net.ssl.keyStorePassword=mypassword -Djavax.net.ssl.trustStore=trustore.jks -Djavax.net.ssl.trustStorePassword=mypassword

我不知道如果我做了正確的事情,服務器的公鑰。請讓我知道你在想什麼。

我該怎麼做?請讓我知道你的建議。

回答

1

您應該將它導入到您的服務器的信任存儲中,而不是它的密鑰存儲。

+0

這是我導入證書的tomcat的TrustStorefile。 keytool -import -v -file abc.cer -keystore C:\ apache-tomcat-7.0.26 \ tomcat.keystore「-storepass mypassword – ab3421

0

您必須將證書導入您的證書文件,在JDK中是cacerts文件。這樣做之後,您必須查看證書是否存在於文件中,並且您將在每個客戶端上都這樣做。

有關信任存儲的事情是您創建自己的JKS文件。