GlassFish是Sun Microsystems为Java平台启动的一个开源应用服务器项目,现在由Oracle公司赞助。它有助于开发可扩展的便携式应用程序。
在实况部署Glassfish时总会出现的一个问题是设置自定义SSL。Glassfish为每个Glassfish部署提供了一个预定义的SSL证书,但这并不符合配置为使用自定义域名(如www.example.com)的开发应用程序的目的。Glassfish使用Keystore来存储SSL证书。
本文我们如何尽可能快地配置Glassfish的SSL证书。我们将使用Glassfish 3.1。
先决条件:您必须具有终端(通过命令行访问运行Glassfish的服务器以及SSL证书和密钥。您还可以使用自签名证书来尝试执行以下步骤。
1.备份当前设置
转到Glassfish安装cd /usr/local/glassfish-3.1/glassfish/domains/domain1/config/
2.保存默认的SSL Keystorecp keystore.jks keystore.jks.ori
3.从密钥库中删除默认的SSL证书keytool -delete -alias s1as -keystore keystore.jks -storepass {admin password}
注意:所有glassfish安装的SSL证书的默认别名是s1as
准备你的证书cat server.crt intermediate.CA.crt Root.CA.crt > combined_servercert_chain.crt
5.将您的证书转换为pkcs#12openssl pkcs12 -export -in combined_servercert_chain.crt -inkey serverkey.pem -out keystore.pkcs12 -name s1as -passout pass:{admin password}
5.现在将转换后的证书导入密钥库keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -srcstorepass -deststoretype jks -destkeystore keystore.jks -deststorepass {admin password}
完成上述步骤后,您应该看到以下消息:
成功导入别名s1as的条目。
导入命令完成:1个条目成功导入,0个条目失败或取消
6.重新启动Glassfish(下面的命令取决于您的Glassfish 安装)service glassfish start
或/usr/local/glassfish-3.1/glassfish/asadmin start-domain
现在您的自定义SSL已被部署。您可以使用以下命令验证证书:
openssl s_client -showcerts -connect glassfish-server-ip:443
现在,您已经拥有了一个运行自定义SSL证书的Glassfish服务器,并且您在通过浏览器访问时不应该收到任何安全警告。
希望这可以帮助