【问题标题】:How to enforce an Axis Client to use TLSv1.2 protocol如何强制 Axis 客户端使用 TLSv1.2 协议
【发布时间】:2016-03-14 19:31:22
【问题描述】:

与我们的应用程序集成的第三方最近对其安全级别协议进行了更改。简而言之,My Axis 客户端现在应该使用 TLSv1.1 或 TLSv1.2 发送调用。 我看过其他关于这个的帖子,有一些好主意:

  1. here
  2. here。

在对代码进行这些更改后,我再次触发了调用, 我使用了一个截图工具来监控发送的包,我仍然在 SSL 层看到正在使用的协议是 TLSv1。

the packet snippet

我在这里做错了什么?

这就是我设置新 SocketSecureFactory 的方式:

AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());

而 MyTLSSocketSecureFactory 是:

public class MyTLSSocketSecureFactory extends JSSESocketFactory {
    public MyTLSSocketSecureFactory(Hashtable attributes) {
        super(attributes);
    }

    @Override
    public Socket create(String host,int port,   StringBuffer otherHeaders,BooleanHolder useFullURL)
              throws Exception{
        Socket s = super.create(host, port, otherHeaders, useFullURL);
        ((SSLSocket)s).setEnabledProtocols(new String[] {"TLSv1.1", "TLSv1.2"});
        return s;
    }
}

非常感谢任何 cmets, 谢谢。

【问题讨论】:

  • 我遇到了完全相同的问题 - 从昨晚开始,第 3 方服务器开始仅接受 TLS 1.1 或 1.2 连接,而没有事先通知。我正在使用 JDK 6 u 35,Axis 1.4。尝试使用以下描述的解决方案,但没有任何区别,tshark 仍然说我要使用 TLSv1:TLSv1 75 Alert (Level: Fatal, Description: Handshake Failure)

标签: ssl axis webservices-client tls1.2


【解决方案1】:

在您的 MyTLSSocketSecureFactory 类中,您需要创建自己的 SSLContext 实例,然后从上下文中获取 sslFactory。

重写 initFactory() 方法,诸如:

initFactory() {
  SSLContext context = SSLContext.getInstance("TLSv1.2");
  context.init(null, null, null);
  sslFactory = context.getSocketFactory();
}

【讨论】:

  • 这很好用。只需要更改 SSLContext.getInstance("TSLv1.2"); “TSL”到 TLS..
【解决方案2】:

您也可以只更改默认的 SSLContext

    SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
    sslContext.init(null, null, null);
    SSLContext.setDefault(sslContext);

【讨论】:

    【解决方案3】:

    另请参阅https://github.com/unkascrack/axis-ssl,他们引入了 SSLClientAxisEngineConfig EngineConfiguration 实现来启用 TLS。

    【讨论】:

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