【问题标题】:Making TLS v1.2 connections on Google App Engine在 Google App Engine 上建立 TLS v1.2 连接
【发布时间】:2017-10-02 22:05:51
【问题描述】:

我有一个与 API 建立 HTTP 连接的 Google App Engine Java 7 服务器:

    // 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 版本的情况下完成?

更新

我在上面的“设置”之前添加了以下内容:

    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。谁能给点建议?

【问题讨论】:

标签: java google-app-engine ssl environment-variables tls1.2


【解决方案1】:

如果您使用的是 windows 则设置环境变量 -Dhttps.protocols=TLSv1.1,TLSv1.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    相关资源
    最近更新 更多