java命令行报错:javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

描述一下整个问题:

jdk1.8,使用https通讯,用eclipse执行正确,但是放到ubuntu或者windows上,用命令行执行报错。

1。最初,把jdk1.8回退到1.7,代码没变,这个问题自动解决。

2。后来在代码中加System.setProperty("javax.net.debug", "ssl");可以看到ssl出错的原始原因。加这行后,在命令行执行,确实看到了整个ssl通讯过程,错误也详细输出

    1)如果原因是:“main, RECV TLSv1 ALERT:  fatal, handshake_failure“,下载JCE补丁UnlimitedJCEPolicyJDK7.zip等,如下,

适用JDK6的JCE补丁:

    http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

适用JDK7的JCE补丁:

    http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

适用JDK8的JCE补丁: 
    http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 

2)如果原因是:”main, handling exception: javax.net.ssl.SSLKeyException: RSA premaster secret error“,

    把%java_home%\jre\lib\ext\sunjce_provider.jar添加到classpath,

例如:java  -Djava.ext.dirs=D:\javacodes8\autotest\interfaces\class  com.testapplications.Trans 201912231211 10,

sunjce_provider.jar复制在D:\javacodes8\autotest\interfaces\class里.

问题解决。

201912231800dongwuyuan

你可能感兴趣的:(Java,JUnit)