【问题标题】:TLSv1.2+BouncyCastle+Apache httpclient 4.4TLSv1.2+BouncyCastle+Apache httpclient 4.4
【发布时间】:2016-05-03 15:45:06
【问题描述】:

参考How to use TLS 1.2 in Java 6中提供的解决方案,是否可以将TSLSocketConnectionFactory与Apache HttpClient4.4一起使用。

问候, j

【问题讨论】:

    标签: ssl bouncycastle java-6


    【解决方案1】:

    您应该能够将 TSLSocketConnectionFactory 与 HttpClient 一起使用,如下所示:

    SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(new TLSSocketConnectionFactory(), new String[]{"TLSv1.2"}, null, new DefaultHostnameVerifier());
    HttpClient client = HttpClientBuilder.create()
                .setSSLSocketFactory(sf)
                .build();
    

    您可能需要更改 TSLSocketConnectionFactory 中的一些 SSLSession 方法实现。

    就我而言,当我尝试将它与 HttpClient 一起使用时,我必须更改以下内容:

    在 SSLSocket() 实现时:

    @Override
    public String[] getEnabledCipherSuites() {          
        // return null;
        return new String[]{""};
    }
    
    @Override
    public String[] getEnabledProtocols() {
        // return null;
        return new String[]{""};
     }
    

    在 SSLSession() 实现时:

     @Override
     public String getProtocol() {
     // throw new UnsupportedOperationException();
        return null;
     }
     @Override
     public String getProtocol() {
     // throw new UnsupportedOperationException();
        return "";
     }
     @Override
     public String getCipherSuite() {
     // throw new UnsupportedOperationException();
        return "":
     }
    

    【讨论】:

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