我有一个Google App Engine Java 7服务器,可以与API建立HTTP连接:
// Setup
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost(Url);
request.setEntity(new StringEntity(Xml));
// Execute request and extract response
ResponseHandler<String> response = new BasicResponseHandler();
String body = client.execute(request, response);
return body;
然而,这是失败的,因为我连接的服务已停止接受TLS v1.0和v1.1连接,并且只接受TLS v1.2。如何使我的服务器或代码适应此更改?
我已经看到其他报告可以在Java 8中完成,但这可以在不更新Java版本的情况下完成吗?
更新
我在&#39;设置&#39;之前添加了以下内容:以上:
System.setProperty("https.protocols", "TLSv1.2");
Socket socket = SSLSocketFactory.getDefault().createSocket();
String[] tlsVersions = {"TLSv1.2"};
((SSLSocket)socket).setEnabledProtocols(tlsVersions);
但是我在Google App Engine上收到错误Received fatal alert: handshake_failure
。有人可以建议吗?
答案 0 :(得分:0)
如果您使用的是Windows,请设置环境变量 -Dhttps.protocols = TLSv1.1,TLSv1.2工作