Glassfish管理控制台在更改keystore.jks后停止



我使用GF 3.1.2.2,现在我需要为我的Web应用程序配置Lets Encrypt SSL证书。在我用包括Lets Encrypt证书在内的新证书更改了默认的keystore.jks后,我的网络应用程序运行良好,但管理控制台没有

server.log文件出现此错误,因为它需要默认的keystore.jks文件:

[#|2016-05-17T11:31:15.344-0400|SEVERE|glassfish3.1.2|org.glassfish.admingui |_ThreadID=72;_ThreadName=Thread-2;|javax.net.ssl.ssl握手异常:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.seecurity.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径;javax.net.ssl.ssl握手异常:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.scurity.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径;restRequest:端点=https://localhost:4848/management/domain/anonymous-用户已启用属性={}method=GET|#]

我迟到了3年,但谁知道也许有人读了它:)出现问题的原因是管理侦听器使用的证书不在您的新密钥库中。

管理员侦听器(端口4848)使用的默认证书别名为"s1as",并且随Glassfish安装提供。此证书位于Default Keystore Keystore.jks中。

如果您用新的密钥库更改了密钥库,那么Glassfish就找不到他用于管理侦听器的证书。

这很可能是你的问题的解决方案:

简单的一个:

  • 停止玻璃鱼
  • 转到路径./glassfish/glassfish/domains/domain1/config中的domain.xml,如果您在其中找到名称为"cert昵称"的属性,请将该值更改为Let's Encrypt证书的别名
  • 重新启动Glassfish

更硬但更复杂:

  1. 找出管理员侦听器以前使用过的证书

    • 暂时改回旧的keystore.jks
    • 登录到管理控制台,然后在下面查找证书昵称CCD_ 2。Glassfish使用的默认证书的名称为s1as
  2. a) 如果它是一个新的Glassfish安装,并且管理侦听器仍然使用默认证书s1as,那么我建议您切换到新的证书。

    • 只需将Certificate NickName更改为Lets'Encrypt证书的别名,然后单击保存按钮
    • 停止玻璃鱼
    • 切换到您的新密钥库
    • 启动Glassfish

    b) 如果您坚持保留旧证书,则必须通过keytool从"旧"密钥库中提取证书,并将其导入到新的密钥库中。

    • 停止玻璃鱼
    • 使用以下命令提取旧证书:

       keytool -export -alias myOldCertificateNickname -keystore keystore.jks -file myOldCertificate.crt
      

      用您在步骤1中找到的证书昵称替换myOldCertificateNickname

    • 将新导出的旧证书导入新的密钥库

      keytool -import -alias myOldCertificateNickname -file myOldCertificate.crt -keystore myNewKeystore.jks
      
    • 启动Glassfish

现在这是最重要的 要使所有这些工作正常,您还需要知道密钥库和证书库的密码!还有玻璃鱼大师!因为Glassfish坚持所有3个密码必须相同(MasterPW、Keystore密码、证书密码)

这里有一个非常好的在线指南,用于在Glassfish 中安装证书

https://www.ssls.com/knowledgebase/how-to-install-an-ssl-certificate-on-glassfish/

最新更新