首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 7与Java 8中SSL握手的工作原理

Java 7与Java 8中SSL握手的工作原理
EN

Stack Overflow用户
提问于 2017-04-29 07:15:55
回答 1查看 3.4K关注 0票数 2

最近,在使用HttpClient访问Java应用程序中的第三方服务(CURL )时,我遇到了如下问题:

代码语言:javascript
复制
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
....

我在JDK 7中得到了这个问题。通过对这个问题的研究,我发现了两个建议:

  • 在JDK 7 Truststore中添加特定第三方的证书。我试过了但问题仍然是一样的
  • 使用JDK 8而不是我尝试过的JDK 7,它对我有用。

因此,我试图像一样理解,与Java7或更低版本相比,SSL握手是如何在Java8中发生的?我可以在JDK7中解决这个问题

码蛇形

代码语言:javascript
复制
public String getProduct(final String accessToken) throws IOException, ParseException {

    log.info("accessToken: " + accessToken);
    final String stringUrl = "https://api.molt.in/v1/products";
    HttpClient httpClient = HttpClientBuilder.create().build();
    HttpGet getRequest = new HttpGet(stringUrl);
    getRequest.setHeader("Authorization", "Bearer " + accessToken);
    HttpContext httpContext = new BasicHttpContext();
    HttpResponse response = httpClient.execute(getRequest, httpContext);
    log.info("Response Code : " + response.getStatusLine().getStatusCode());

    BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }
    log.info("result: " + result);

    rd.close();
    return result.toString();
}

~问候,

钱丹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 07:34:18

服务器关闭握手,因为客户端使用不支持的协议。请参见这个问题,其中建议使用以下方式启动Java 7:

代码语言:javascript
复制
-Dhttps.protocols=TLSv1.1,TLSv1.2

如果服务器证书不受信任,您将从客户端获得一个错误(javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX路径构建失败),并且它是这样工作的:在您的示例"api.molt.in“中,Java检查服务器的证书以确保它正在交谈的机器实际上是它声称的那个机器。支票的工作方式如下:

  • 如果证书是自签名的,则如果在默认信任存储区中找到证书,则该证书是可信的。
  • 如果证书由授权机构签名,则如果在默认信任存储区中找到颁发机构的证书,则该证书是可信的。

可以在每个Java小版本中更新受信任方的列表。例如,使用让我们加密生成的证书仅受Java8 自101次更新以来的信任。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43692884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档