We are in actively in the process of completely phasing out support for SSLv3 protocol and leaving only support for secure TLSv1.1-1.2. Is rest assured TLS v1.1/1.2 compliant? Getting javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure erros while using:
given().relaxedHTTPSValidation().auth().basic("login", "pwd")).when().get(restUrl).asString();
tried:
Object sslContext = SSLContext.getInstance("TLS");
before making the relaxedHTTPSValidation() call. that did not help either.
Appreciate your help.
Thanks!
--
You received this message because you are subscribed to the Google Groups "REST assured" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rest-assured...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.params.HttpParams;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import java.io.IOException;
import java.net.Socket;
public class Sslv3SocketFactory extends SSLSocketFactory {
private final Log log = LogFactory.getLog(getClass());
/**
* Instantaites a new {@link Sslv3SocketFactory}.
*
* @param sslContext: The SSLContext.
* @param hostnameVerifier: The X509HostnameVerifier.
*/
public Sslv3SocketFactory(SSLContext sslContext, X509HostnameVerifier hostnameVerifier) {
super(sslContext, hostnameVerifier);
}
@Override
public Socket createSocket(HttpParams params) throws IOException { if (true) {
log.debug("createSocket: " + params);
}
SSLSocket socket = (SSLSocket) super.createSocket(params);
socket.setEnabledProtocols(new String[]{"SSLv3", "TLSv1"});
return socket;
}
}Passing Custom Socket factory to Rest Assured
org.apache.http.conn.ssl.SSLSocketFactory customSslFactory = new Sslv3SocketFactory(ctx,org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); RestAssured.config = RestAssured.config().sslConfig( SSLConfig.sslConfig().sslSocketFactory(customSslFactory)); RestAssured.config.getHttpClientConfig().reuseHttpClientInstance();
--
socket.setEnabledProtocols(new String[]{"SSLv3", "TLSv1"});