我尝试通过HTTPS将Java 8连接到具有自签名TLS证书的Intranet服务器上的JNLP文件。
当Java Web Start尝试加载JNLP中指定的第一个资源(来自该服务器的文件)时,会抛出异常:
javax.net.ssl.SSLHandshakeException: com.sun.deploy.security.RevocationChecker$StatusUnknownException: Certificate does not specify OCSP responder
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
...
Caused by: com.sun.deploy.security.RevocationChecker$StatusUnknownException: Certificate does not specify OCSP responder
at com.sun.deploy.security.RevocationChecker.checkOCSP(Unknown Source)
at com.sun.deploy.security.RevocationChecker.check(Unknown Source)
at com.sun.deploy.security.RevocationCheckHelper.doRevocationCheck(Unknown Source)
at com.sun.deploy.security.RevocationCheckHelper.doRevocationCheck(Unknown Source)
at com.sun.deploy.security.RevocationCheckHelper.checkRevocationStatus(Unknown Source)
at com.sun.deploy.security.X509TrustManagerDelegate.checkTrusted(Unknown Source)
at com.sun.deploy.security.X509Extended7DeployTrustManagerDelegate.checkServerTrusted(Unknown Source)
at com.sun.deploy.security.X509Extended7DeployTrustManager.checkServerTrusted(Unknown Source)
... 39 more
Suppressed: com.sun.deploy.security.RevocationChecker$StatusUnknownException
at com.sun.deploy.security.RevocationChecker.checkCRLs(Unknown Source)
... 46 more
有什么想法吗?
确实我们没有指定OCSP响应者。但这真的是一个问题吗?有趣的是,这适用于我的同事的机器(他们只收到警告)。前几天我暂时安装了Java 9来测试一些东西。是否有可能混淆了什么?我再次卸载它,顺便说一句。
我当前的解决方法是将Java控制面板中的“执行TLS证书吊销检查”(“高级”选项卡)设置为“不检查(不推荐)”。但我不喜欢那样。
答案 0 :(得分:0)
我今天已经过去了,这只是我的证书存在的问题-重新创建了密钥库,但是我的信任库缺少网站证书中指定的新的根/中间证书。我回去并将证书添加到信任库中,然后重新启动了站点,它就可以正常工作。
keytool -import -trustcacerts -alias root -file NewRoot.cer -keystore cacerts
keytool -import -trustcacerts -alias "Intermed Name Here" -file NewInt.cer -keystore cacerts
-当Java真的按顺序检查CRL和OCSP时,我陷入了死胡同的追逐OCSP响应器的困境。真正需要的就是修复Truststore / CA。
布伦特