gpt4 book ai didi

java - Glassfish 4.1.1 - 使用我自己的证书的 DAS 抛出 "j_security_check"错误

转载 作者:搜寻专家 更新时间:2023-11-01 02:21:33 25 4
gpt4 key购买 nike

我有一个正在运行的 glassfish 4.1.1 实例,我将自己的证书添加到我的应用程序中,直到那时一切正常..

但是,当我尝试访问 glassfish admin(DAS) 时,连接不受信任,添加异常的按钮消失了。

然后我发现了一些有趣的链接,比如:

我试过这个:

asadmin enable-secure-admin --adminalias=myNewAlias --instancealias myNewAlias
asadmin restart-domain domain1

这样不受信任的连接消息就会消失并且证书会正确显示,但是当我尝试身份验证时会抛出错误:

根据link的回答评论,它与那个人所拥有的非常相似,但我无法解决它:

  • 从 ~.gfclient/truststore 中删除 s1as 证书
  • 使用我的新别名证书重新启动域

如何正确更改 s1as 证书?为了我的 DAS 工作...

我正在使用带有 java-1.8.0-openjdk-amd64 的 Ubuntu 14。

第 1 步: enter image description here

第 2 步: enter image description here

显示这些行的服务器日志:

[2016-10-18T10:38:12.565+0200] [glassfish 4.1] [SEVERE] [] [org.glassfish.admingui] [tid: _ThreadID=51 _ThreadName=admin-listener(2)] [timeMillis: 1476779892565] [levelValue: 1000] [[ javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; restRequest: endpoint=https://localhost:4848/management/domain/anonymous-user-enabled attrs={} method=GET]]

最佳答案

我终于解决了,为什么会这样?使用@Mike 的解释:

That is because there is both a keystore and a truststore for GlassFish, and the Admin console effectively uses 2-way SSL authentication for the initial login. If you change the s1as certificate, you will also need to change the glassfish-instance certificate

在我的例子中,我尝试使用我自己的证书,但我没有正确删除 cacerts.jks 和 keystore.jks 文件中最旧的证书。

我在运行下面的代码时没有先从文件中删除 s1as 和 glassfish-instance,那是我错误的步骤...

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 - truststore - holding all the public keys $GLASSFISH_HOME/domains/domain1/config/keystore.jks - keystore - holding all the private keys

引用资料:

Session 6. 首次启动前的安全配置: https://www.nabisoft.com/tutorials/glassfish/installing-glassfish-41-on-ubuntu

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://glassfish.java.net/docs/4.0/security-guide.pdf

2) 删除最旧的自签名证书:

默认情况下,当您运行命令 enabled-secur-admin 时,分配给该实例的证书是 s1as 并且公开的是 glassfish-instance,正如@所解释的迈克成另一个stack-overflow question即使您强制使用另一个证书运行,证书仍然存在。使用这些命令删除两者:

#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

引用资料:

谢谢@Mike:Right way to configure Glassfish SSL certificate nickname?

https://glassfish.java.net/docs/4.0/security-guide.pdf (第 80 页)

3) 在第一步中使用您自己设置的别名重新启动安全管理员

$GLASSFISH_HOME/bin/asadmin enable-secure-admin --adminalias=myOwnAlias --instancealias myOwnAlias

$GLASSFISH_HOME/bin/asadmin restart-domain

理论上已经搞定了,你就可以用自己的证书访问DAS了……;)

关于java - Glassfish 4.1.1 - 使用我自己的证书的 DAS 抛出 "j_security_check"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40104301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com