LeoQ
Databricks Employee
Databricks Employee

Use the following snippet to test your Java connection:

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.net.Socket;
import java.security.cert.X509Certificate;

public class SslTest {

    public static void testConnection(String hostname) {
        int port = 443;
        Socket sock = null;
        SSLSocket sslSock = null;

        try {
            SSLContext context = SSLContext.getDefault();
            SSLSocketFactory factory = context.getSocketFactory();

            sock = new Socket(hostname, port);
            sslSock = (SSLSocket) factory.createSocket(sock, hostname, port, true);

            sslSock.startHandshake();

            X509Certificate cert = (X509Certificate)
                    sslSock.getSession().getPeerCertificates()[0];

            String subject = cert.getSubjectDN().getName();
            String issuer = cert.getIssuerDN().getName();

            System.out.println("[" + hostname + "]");
            System.out.println("  Successful connection");
            System.out.println("  Subject: " + subject);
            System.out.println("  Issuer : " + issuer);
            System.out.println();

        } catch (Exception e) {
            System.out.println("[" + hostname + "]");
            System.out.println("  Failed to connect: " + e.getMessage());
            System.out.println();
        } finally {
            try {
                if (sslSock != null) sslSock.close();
                if (sock != null) sock.close();
            } catch (Exception ignored) {
            }
        }
    }

    public static void main(String[] args) {
        testConnection("www.delta-sharing.westus.azuredatabricks.net");
        testConnection("help.databricks.com");
        testConnection("community.databricks.com");
        testConnection("customer-academy.databricks.com");
    }
}