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
]
]
新文件的結果不包含類似於上述行的任何內容。在我的應用程序中,我打算使用自簽名證書。如果有人能就如何解決這個問題給我一些建議,我將非常感激。
最好的問候,
詹姆斯陳
感謝一大堆哥們= d! –