以Glassadmin 5.1 asadmin身份执行时Java安全错误,但证书有效

时间:2019-05-10 21:06:00

标签: 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
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中所有证书的有效性。

一切正常。有人可以在这里解释真正的问题吗?

帮助!

1 个答案:

答案 0 :(得分:0)

  • 更新:

您是如何运行keytool的?默认列表(不带-v表示详细信息)为您提供证书有效的日期(直到!),尝试添加-v或使用其他工具,例如:https://keystore-explorer.org/

  • 原始帖子:

无法访问您的环境或任何重现此问题的步骤,我无法给您提供简单的解决方法-对不起。可惜的是,这种特殊的异常没有显示堆栈跟踪来告诉我们更多的代码是由什么引起的,或者没有显示调试日志来告诉我们哪个url /连接尝试导致了这种情况。

查找此特定证书的到期日期仅在其他地方显示完全相同的问题(交叉发布):

因此,我希望您的问题与您的本地环境有关,例如:

  • (透明代理服务器/负载平衡器/前端网络服务器)具有过期的证书,或将请求重定向到与预期不同的IP地址
  • ldap服务器使用已过期的证书通过ssl / tls处理身份验证
  • 自定义密钥库配置指向的密钥库文件与您期望的不同(最有可能的扩展名是:jks,pkcs12 / p12 / pfx,cer,或取决于您的Java安全提供程序和相关配置(对于Oracle Java,甚至可能是在Windows密钥库等中,请参阅:https://docs.oracle.com/en/java/javase/11/security/oracle-providers.html

尝试以下操作可能会有用:

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

如果其他所有方法均失败:

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

祝你好运!