2011-08-13 35 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! –

相关问题