转自:https://blog.csdn.net/u012427018/article/details/50466616
使用https访问glassfish需在domain.xml文件中配置:
<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id="http-listener-2" port="38700" security-enabled="true" server-name="" xpowered-by="true">
<ssl cert-nickname="s1as" client-auth-enabled="false" ssl2-enabled="false" ssl3-enabled="true" tls-enabled="true" tls-rollback-enabled="true"/>
</http-listener>
以上配置并没有指定证书路径,只指明了证书的别名s1as,这是因为glassfish会默认使用config目录下的cacerts.jks作为证书,因此替换证书就是要将自定义的证书导入到cacerts.jks。
做法分为如下几步(在glassfish的config目录下输入如下命令):
(1)自定义keystore.jks
keytool -genkey -alias s1as -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks
(2)导出证书
keytool -export -alias s1as -storepass changeit -file server.cer -keystore keystore.jks
(3)将证书导入到
cacerts.jkskeytool -import -v -trustcacerts -alias s1as -file server.cer -keystore cacerts.jks -keypass changeit
(4)查看cacerts.jks,是否导入成功
keytool -list -v -keystore cacerts.jks -storepass changeit
有以下几点需要注意:
(1)-alias 指定别名,需要和domain.xml中配置的别名一致,上述例子都使用s1as。
(2)如果报异常,别名 已经存在,需要将原文件keystore.jsk和cacerts.jks删除
(3)生成keystore.jsk时需要输入一些信息,第一项输入姓名时必须输入域名或者IP地址,保证和访问glassfish时浏览器输入的域名一致。