对于以下代码,我得到“线程“主”javax.net.ssl.SSLHandshakeException 中的异常:收到致命警报:handshake_failure”。有人知道如何解决吗?
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
public class Test {
static {
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2,SSLv3,SSLv2Hello");
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
}
public static void main(String[] args) throws MalformedURLException, IOException {
HttpURLConnection con = (HttpsURLConnection) new URL("https://www.sureworks.de").openConnection();
con.connect();
}
}
最佳答案
默认情况下未启用一些与加密相关的内容。您需要安装 JCE:
- > Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
- > Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
PS:SSL 实验室让您对尝试访问的服务器有所了解 https://www.ssllabs.com/ssltest/analyze.html?viaform=on&d=https%3A%2F%2Fwww.sureworks.de%2F
关于javax.net.ssl.SSLHandshakeException HttpsURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36486346/