System.setProperty("javax.net.ssl.trustStore", "C:/tasks/MIP/Cert/ccc_acp.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
System.setProperty("javax.net.debug", "ssl");
已设置truststore,但调用https时仍有错误
整个错误信息很长,错误信息的最后一部分引用如下
main,写:TLSv1更改密码规范,长度=1
***完成验证_data:{204,151,145,147,7,73,205,158,73,238,129,8}
main,写:TLSv1握手,长度=32
main,读:TLSv1警报,长度=2
main,RECV TLSv1警报:fatal,handshake_failure
main,调用closeSocket()
main,处理异常:javax.net.ssl.sslhandshakeException:接收致命警报:handshake_failurejava.lang.exception:;嵌套异常为:javax.net.ssl.sslhandShakeException:接收到致命警报:handshake_failure
不知道是什么原因,但是如果我把setProperty从trustStore改为keyStore,程序就可以工作了!!
System.setProperty("javax.net.ssl.keyStore", "C:/tasks/MIP/Cert/ccc_acp.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
我对SSL不熟悉,在goolge中,我发现keyStore只用于服务器端,但我的应用程序是一个客户端调用服务器端的API,所以不知道为什么改成keyStore会成功,现在有人能解释吗?
有关更多信息,我发现如果删除所有System.SetProperty(...),那么在控制台中,我会看到keyStore为空,而trustStore不为空,如下所示:
keyStore是:
keyStore类型是:jks
keyStore提供者是:
init keyStore
init keymanager类型是sunx509
trustStore是:c:\program files\java\jre6\lib\security\cacerts
trustStore类型是:jks
trustStore提供者是:
init trustStore
为什么keyStore是空的?
问题内容: 我正在尝试使用 liferay中的* javapns 库将推送通知发送到我的设备。这是代码: * 调用pushNotification时出现此错误: 我已经用谷歌搜索了,但是找不到任何解决方案。 有谁知道如何解决这个问题? 问题答案: 当您要连接的服务器没有来自授权CA的有效证书时,通常会引发该异常。 简而言之,您尝试连接的服务器很可能使用自签名证书,因此您必须在Java代码中容纳该证
问题内容: 我从两天后尝试了许多选项后发布了这个问题。以下是我尝试的选项。 禁用SSL证书验证 通过从浏览器下载crt并转换为.jks并导入密钥库。 我仍然遇到这个问题,非常感谢您的任何帮助。 问题答案: 问题解决了。!!!以下是解决方案。 对于Java 6:将下面的jar添加到{JAVA_HOME} / jre / lib / ext中。1. bcprov-ext- jdk15on-154.ja
我在使用Java 1.7.0_67的linux服务器上使用Tomcat 7.065和APR 1.1.33。 多年来,我的应用程序一直通过SSL愉快地连接到第三方站点。第三方颁发了一个新证书。第三部分站点是:https://its.changehealthcare.com/ 我下载了。cer文件并导入了一个keytool: 当我做一个keytools列表时,我得到: 但是我继续得到一个ssl握手错误
我在Java 8上运行以下代码, 获得例外, ioException 在发送 http 请求时发生:javax.net.ssl.SSLHandshake异常:收到致命警报:handshake_failure。 我能够通过卷曲连接到, 有人能告诉我我的java代码有什么问题吗? 依赖关系如下,
我是张贴这个问题后,尝试了许多选项,从两天。下面是我尝试的选项。 null
我的java应用程序是由JBoss AS 5运行的。我试图通过URL连接下载图像,但收到下一个异常:javax.net.ssl.sslHandShakeException:Received致命警报:handshake_failure 我已将trust-managet配置为“全信任信任管理器”: null