Ein Drittanbieter, mit dem unsere Anwendung integriert wurde, hat kürzlich Änderungen an den Sicherheitsstufenprotokollen vorgenommen. Kurz gesagt, My Axis-Client sollte jetzt Anrufe mit TLSv1.1 oder TLSv1.2 senden. Ich habe andere Beiträge in Bezug auf diese gesehen, mit einigen guten Ideen:So erzwingen Sie die Verwendung eines Axis-Clients für das TLSv1.2-Protokoll
Nachdem diese Änderungen im Code zu machen, ich habe wieder die Anrufe ausgelöst, ich ein Snipping Tool verwendet habe, das gesendete Paket zu überwachen, und ich immer noch in der SSL-Schicht sehen, dass das Protokoll TLSv1 verwendet wird.
, was mache ich hier falsch?
das ist, wie ich meine neue SocketSecureFactory gesetzt:
AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());
während MyTLSSocketSecureFactory ist:
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;
}
}
wirklich keine Kommentare zu schätzen wissen würde, Dank.
ich genau das gleiche Problem mit - die 3'rd Partei Der Server hat seit letzter Nacht ohne vorherige Benachrichtigung nur TLS 1.1- oder 1.2-Verbindungen akzeptiert. Ich verwende JDK 6 u 35, Achse 1.4. Versucht mit der unten beschriebenen Lösung, aber es macht keinen Unterschied, sagt Tshark immer noch, ich gehe mit TLSv1: TLSv1 75 Alert (Level: Fatal, Beschreibung: Handshake Failure) – Sergiu