Search code examples
ssllotus-dominotls1.2managed-beanhandshake

SSL connection via Domino managed bean to payment gateway fails with 'handshake_failure'


I have a Java agent that connects to a payment gateway to validate a CC transaction.

Everything seems to work fine when the Java logic is run on my IBM Notes client (9.0.1FP10IF3).

I am now migrating the logic to a managed bean on my Domino server (9.0.1FP6).

Whenever the connection is made through the bean, I observe the following error on the server console...

HTTP JVM: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

I am certain it's because the payment gateway with which I am attempting to communicate has recently upgraded to enforce mandatory TLS 1.2 communications.

However, I'm not sure how to enforce those communications on the Domino server side?

I have set the recommended NOTES.INI variables...

DISABLE_SSLV3=1

SSL_DISABLE_TLS_10=1

... and set the 'SSLCipherSpec', but nothing is working.

Here is an excerpt from the logic I'm using to test everything out.

The 'DataOutputStream' line is what triggers the error...

URL url = new URL("https://host/endpoint");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setAllowUserInteraction(false);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-type", "text/xml");
connection.setRequestProperty("Content-length", Integer.toString(postContent.length()));
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.writeBytes(postContent);
out.flush();
out.close();
connection.disconnect();

Any advice/assistance would be most appreciated!


Solution

  • As Per answered, this document allowed me to resolve the issue straight away...

    www-01.ibm.com/support/docview.wss?uid=swg21985289