2011-08-13 98 views
3

我按照Oracle Tutorial中的說明用新密碼創建新的「keystore.jks」和「cacerts.jks」文件(不使用默認的「更改」)。爲了更精確,我用下面3個命令以生成文件:在EJB中使用SSL有異常:密鑰庫被篡改或密碼不正確

1. keytool -genkey -alias s1as -keyalg RSA -keypass newpass -storepass newpass -keystore keystore.jks 
2. keytool -export -alias s1as -storepass newpass -file server.cer -keystore keystore.jks 
3. keytool -import -v -trustcacerts -alias s1as -file server.cer -keystore cacerts.jks -keypass newpass -storepass newpass 

後我複製新的「keystore.jks」和「cacerts.jks」文件到「/域/域1/config」文件夾並啓動應用程序服務器,我碰到了以下異常:

IllegalStateException: Keystore was tampered with, or password was incorrect 

不過,我覺得密碼應該是正確的,因爲當我在配置GlassFish中使用新的文件,我也加入這一行JVM選項:

-Djavax.net.ssl.keyStorePassword=newpass 

我試圖文件使用下面的命令新建一個比較舊的「keystore.jks」:

keytool -list -v -keystore keystore.jks 

我注意到,在結果爲舊的文件,不是爲s1as證書的信息等,還含有以下行:

Extensions: 
#1 ObjectId: 2.5.29.14 Criticality=false 
SubjectKeyIdentifier [ 
KeyIdentifier [ 
0000: 1B 31 49 23 1C 5B 17 1D 9F 02 86 FD F7 2B 44 F4 .1I#.[.........+D. 
0010: 1B E3 7A C6 
] 
] 

新文件的結果不包含類似於上述行的任何內容。在我的應用程序中,我打算使用自簽名證書。如果有人能就如何解決這個問題給我一些建議,我將非常感激。

最好的問候,

詹姆斯陳

回答

2

嘗試增加此參數-Djavax.net.ssl.trustStorePassword=newpass

+0

感謝一大堆哥們= d! –

相關問題