我有以下问题:
我从comodo(90天)获得了我的glassfish网络应用程序的免费证书,然后我按照http://javadude.wordpress.com/2010/04/06/getting-started-with-glassfish-v3-and-ssl/
将证书导入glassfish 3.1我还修改了domain.xml文件,将别名s1as替换为我的证书别名,将文件keystore.jks替换为server.keystore ....但是当我尝试使用https协议访问我的Web应用程序时,我得到了以下日志错误:
[#| 2012-10-12T14:41:18.828 + 0200 |警告| glassfish3.1.2 | com.sun.grizzly.config.Gr izzlyServiceListener | _ThreadID = 25; _ThreadName = HTTP线程池-443(1); | GRIZZLY00 07:无法配置SSL支持! java.io.IOException:由于没有可用的证书,SSL配置无效 e或key对应于已启用的SSL密码套件。
请帮助我......我知道在这里我可以找到解决问题的方法......
答案 0 :(得分:23)
不幸的是,我没有足够的声誉来发布glassfish控制台管理员的图片,但让我尝试帮助某人使用文本。
NOTE1:配置是在Ubuntu 12.04服务器和glassfish 3.1.2上完成的
Comodo为您提供了4个文件
将每个公钥导入文件cacerts.jks。为此,将公钥文件合并到一个文件中:
注2:文件的顺序很重要。
cat your_domain.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt > all.crt
现在使用keytool导入它们:
keytool -import -trustcacerts -alias tomcat -file all.crt -keystore cacerts.jks
使用您的私钥创建一个p12文件:
注3:您可以为每个文件使用相同的密码,以简化操作。
openssl pkcs12 -export -in all.crt -inkey your_domain.key -out your_domain.p12 - name your_alias -CAfile PositiveSSLCA2.crt -caname immed
注意4:请勿忘记别名( your_alias ),稍后您需要在glassfish管理控制台中引用它。
现在使用keytool导入私钥:
keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore keystore.jks -srckeystore your_domain.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias your_alias
现在您的 keystore.jks (使用您的私钥)和 cacerts.jks (使用您的公钥)已准备好供我使用。如果你想检查一切是否正常,请运行:
keytool -list -keystore keystore.jks
keytool -list -keystore cacerts.jks
转到glassfish管理控制台并找到会话:
转到SSL标签,将证书NickName 更改为 your_domain 。
重新启动Glassfish服务器。
答案 1 :(得分:4)
<强>前提条件:强>
changeit
)~/mySourceKeystore.jks
密码为myPassword
,私钥为myAlias
~/myCertificate.crt
且别名为myPassword
myAlias
~/AwesomeCA.crt
以下是如何将SSL证书导入GlassFish的所有步骤:
导航至GLASSFISH-HOME/domains/domain1/config
将源密钥库(带私钥)导入GlassFish密钥库:
$ keytool -importkeystore -srckeystore ~/mySourceKeystore.jks -destkeystore keystore.jks`
Enter destination keystore password: changeit
Enter source keystore password: myPassword
Entry for alias server successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
将CA的证书导入GlassFish密钥库:
$ keytool -import -v -trustcacerts -alias AwesomeCA -file ~/AwesomeCA.crt -keystore keystore.jks
Enter keystore password: changeit
Certificate was added to keystore
[Storing keystore.jks]
将获取的SSL证书导入GlassFish密钥库:
$ keytool -import -v -trustcacerts -alias myAlias -file ~/myCertificate.crt -keystore keystore.jks
Enter keystore password: changeit
Enter key password for <myAlias>: myPassword
Certificate reply was installed in keystore
[Storing keystore.jks]
此时,GlassFish启动期间会出现错误java.security.UnrecoverableKeyException: Cannot recover key
,因为您有不同的密钥库密码和别名密钥密码。要防止出现此错误,您需要执行:
$ keytool -keypasswd -alias myAlias -new changeit -keystore keystore.jks
Enter keystore password: changeit
Enter key password for <myAlias>: myPassword
将GlassFish中的默认别名(s1as
)更改为myAlias
:
$ asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.cert-nickname=myAlias
(可选)您可以将GlassFish中的默认SSL端口(8181
)更改为众所周知的443
:
$ asadmin set server.network-config.network-listeners.network-listener.http-listener-2.port=443
重新启动GlassFish
答案 2 :(得分:1)
对于Glassfish 4.x,您可以关注this Comodo Guide
以下是web archive if链接过期。