我终于解决了,为什么会这样?使用@Mike的解释:
这是因为同时存在密钥库和信任库
GlassFish 和管理控制台有效地使用了 2 路 SSL
初始登录的身份验证。如果你改变 s1as
证书,您还需要更改 glassfish-instance
证书
就我而言,我尝试使用自己的证书,但没有正确删除 cacerts.jks 和 keystore.jks 文件上最旧的证书。
我运行下面的代码时没有首先从文件中删除 s1as 和 glassfish 实例,这是我的错误步骤......
asadmin enable-secure-admin --adminalias=myNewAlias --instancealias myNewAlias
要使用您自己的证书运行 Glassfish 4.1.1 上的域管理服务器 (DAS),您必须执行以下步骤:
1)将自己的证书插入cacerts.jks和keystore.jks文件中:
就我而言,我使用证书 pkcs12:
keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore keystore.jks -srckeystore myOwnCert.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias myOwnAlias
keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore cacerts.jks -srckeystore myOwnCert.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias myOwnAlias
如果您有另一种证书,您必须搜索如何在这两个文件中插入您的证书类型:
$GLASSFISH_HOME/domains/domain1/config/cacerts.jks - 信任库 -
持有所有公钥
$GLASSFISH_HOME/domains/domain1/config/keystore.jks - 密钥库 - 保存所有私钥
参考:
会话6.首次启动前的安全配置:https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu
http://peter-butkovic.blogspot.com.es/2013/02/glassfish-default-keystore-and.html http://peter-butkovic.blogspot.com.es/2013/02/glassfish-default-keystore-and.html
https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html?jn9ed3e997=3 https://www.sslshopper.com/article-most-common-java-keytool-keystore-commands.html?jn9ed3e997=3
https://glassfish.java.net/docs/4.0/security-guide.pdf https://glassfish.java.net/docs/4.0/security-guide.pdf
2)删除最旧的自签名证书:
默认情况下,当您运行命令enabled-secure-admin时,分配给该实例的证书是s1as公众是glassfish-实例,正如 @Mike 在另一篇文章中所解释的堆栈溢出问题 https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname即使您强制使用另一个证书运行,证书仍然保留。使用以下命令删除两者:
#Restart your domain without secure-admin
$GLASSFISH_HOME/bin/asadmin disable-secure-admin
#Go to your domain config folder to remove the certificates:
cd $GLASSFISH_HOME/domains/domain1/config/
keytool -delete -alias s1as -keystore keystore.jks -storepass changeit
keytool -delete -alias glassfish-instance -keystore keystore.jks -storepass changeit
keytool -delete -alias glassfish-instance -keystore cacerts.jks -storepass changeit
keytool -delete -alias s1as -keystore cacerts.jks -storepass changeit
参考:
谢谢@迈克:配置 Glassfish SSL 证书昵称的正确方法? https://stackoverflow.com/questions/29278152/right-way-to-configure-glassfish-ssl-certificate-nickname
https://glassfish.java.net/docs/4.0/security-guide.pdf https://glassfish.java.net/docs/4.0/security-guide.pdf(第 80 页)
3) 使用第一步中设置的您自己的别名重新启动 security-admin
$GLASSFISH_HOME/bin/asadmin enable-secure-admin --adminalias=myOwnAlias --instancealias myOwnAlias
$GLASSFISH_HOME/bin/asadmin restart-domain
理论上,已经完成了,您将能够使用自己的证书访问 DAS...;)