我一直在尝试使用使用Glassfish的应用程序来帮助我们的一个站点时收到错误消息.登录应用程序时,会引发以下错误:
CommunicationException:发出HTTP请求时发生错误.这可能是由于服务器证书不是configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the客户端和服务器之间的安全绑定.
在Server.log中,显示以下内容:
0400 | SEVERE | glassfish3.1 | com.sun.grizzly.config.GrizzlyServiceListener | _ThreadID = 287; _TreadName = Thread-1; |无法加载带路径C的密钥库类型JKS:\ glassfishv3\glassfish\domains\domain1/config/keystore.jks由于Keystore被篡改,或密码错误java.io.IOException:Keystore被篡改,或密码不正确
该网站只有在更改glassfish主密码时才会遇到此问题.当主密码保留为默认设置时,一切正常.默认主密码为"changeit".
此外,该站点还生成并导入用于glassfish的证书.以下是为了生成证书和更改密码而按顺序执行的步骤:
停止Glassfish服务.
打开MMC.MSC:操作 - >所有任务 - >申请新证书
从"证书注册"向导中,选择"计算机类型"证书.单击"属性"按钮并配置证书.它获得友好名称"s1as"和密钥大小为2048的可导出私钥.私钥导出为pfx文件,证书导出为cer文件.这些文件保存在glassfish配置文件夹中.如果需要,可以使用此过程的详细信
DOS提示符已打开,此命令在glassfish配置文件夹中运行:keytool -delete -alias s1as -keystore keystore.jks -storepass changeit
运行以下命令:keytool -import -v -trustcacerts -alias -file root.cer -keystore cacerts.jks -storepass changeit
回答"Y"信任证书.
输入密码,然后在成功导入1个条目后显示成功消息.