执行Glassfish 5.1 asadmin时出现Java安全错误,但证书有效

执行Glassfish 5.1 asadmin时出现Java安全错误,但证书有效,glassfish,ssl-certificate,Glassfish,Ssl Certificate,我正在尝试在Glassfish 5.1.0中部署Oracle ORDS 19.1 war文件 我遇到了一个部署错误,我想我已经找到了解决方案 但是,当我试图运行修复程序时,我又遇到了一个错误,这对我来说毫无意义。 在Glassfish 5.1.0下: [oracle@secure-web-server-dvl glassfish]$ bin/asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false

我正在尝试在Glassfish 5.1.0中部署Oracle ORDS 19.1 war文件

我遇到了一个部署错误,我想我已经找到了解决方案

但是,当我试图运行修复程序时,我又遇到了一个错误,这对我来说毫无意义。 在Glassfish 5.1.0下:

[oracle@secure-web-server-dvl glassfish]$ bin/asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false
NCLS-ADMIN-00010
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Tue Apr 03 18:09:20 EDT 2018
Command set failed.
这是一个SSL证书过期错误。但是,我的证书没有过期

我使用keytool检查cacerts.jks和keystore.jks中所有证书的有效性

一切都是有效的。有人能解释一下真正的问题吗

救命啊

  • 更新:
你是如何运行keytool的?默认列表(对于verbose,不带-v)为您提供证书的有效日期,而不是截止日期!),尝试添加-v或使用其他工具,如:

  • 原职:
如果没有访问您的环境或任何复制步骤,我不能给您一个简单的修复-抱歉。遗憾的是,这个特殊的异常没有显示stacktrace来告诉我们更多的是哪个代码导致了它,或者没有显示调试日志来告诉我们是哪个url/连接尝试导致了它

查找此特定证书到期日期时,在其他地方只会显示完全相同的问题(交叉过账):

因此,我认为您的问题与当地环境有关,例如:

  • (透明代理服务器/loadbalancer/frontend Web服务器),证书已过期,或将请求重定向到与预期不同的IP地址
  • ldap服务器使用过期证书通过ssl/tls处理身份验证
  • 自定义密钥库配置指向与预期不同的密钥库文件(最可能的扩展名为:jks、pkcs12/p12/pfx、cer,或者取决于java安全提供程序和相关配置(对于Oracle java,它甚至可能位于Windows密钥库等中,请参阅:)
尝试以下操作可能会很有用:

  • 使用系统属性javax.net.debug=all运行相关的Java(客户端)应用程序,例如使用Java-Djavax.net.debug=all…some.jar/someclass
  • 如果要使用其他工具进行检查,请尝试使用:
    • openssl s_客户端-连接主机:端口-服务器名主机-showcerts
    • 将您在上述输出中看到的任何证书保存到cert.txt之类的文件中,并使用以下方法检查它们:
    • openssl x509-in cert.txt-noout-text
  • 如果您不顾一切,请自行承担风险,将系统日期/时间临时更改为过期日期/时间之前,首先制作系统快照/备份-以防万一:-)
如果所有其他方法都失败:

  • 拦截与网络相关的系统调用(例如,使用unix上的strace或Windows上的procmon)
  • 拦截流量(如使用tcpdump、wireshark等)并使用wireshark进行分析
  • 连接Java调试器并在该Java.security.cert.CertificateExpiredException上设置断点

祝你好运

Bump…..已经有4天了,100分悬赏…..没有人?有玻璃鱼专家吗?我不是专家,只能猜测。你的JDK版本是什么?Glassfish 5.1至少需要1.8.0191才能正常工作。Java版本发生了变化:1.8.0_160破坏了Glassfish 5.0中的SSL功能。目前,我能够将Glassfish 5.1配置为与JDK 1.8.0_202一起使用Websockets和Letsencrypt,并且没有任何问题——之前该项目运行在GF 5.0和Java 1.8.0_152上。我不熟悉甲骨文ORDS,应该有问题。可能会有帮助。其他一些可能性:1。SSL实现中的一个步骤被省略-2。一个可能的错误。GF 5.1中的管理GUI可以取消部署应用程序,但无法在远程服务器上部署应用程序,并给出错误信息。目前,我正在通过将war文件放入autodeploy文件夹进行部署