Как я могу получить использованную версию TLS из https URL без класса SSLSocket - PullRequest
0 голосов
/ 30 апреля 2019

Мне нужно проверить, какая версия TLS используется определенными URL-адресами. Я использовал

try {
    myUrl = new URL(url);

    HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
    logger.debug("connection made...");
    SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    conn.setSSLSocketFactory(sslsocketfactory);
    SSLSocket socket = (SSLSocket) sslsocketfactory.createSocket(myUrl.getHost(), 443);

    String[] protocols = socket.getEnabledProtocols();
    String enabledProtocols="";
    for (String protocol : protocols )
        enabledProtocols=enabledProtocols+protocol+" ";
    logger.info("enabled protocols: "+enabledProtocols);
    SSLSession session = socket.getSession();
    logger.info("used protocol: "+session.getProtocol());
    result=result+session.getProtocol()+";"+enabledProtocols+";";
    conn.disconnect();
} catch (Exception e) {
    result=result+"error while connecting to bank";
    logger.debug(url, e);
}

Но sslsocketfactory.createSocket, похоже, заблокирован прокси-серверами, поэтому я не могу использовать класс SSLSocket Я получаю java.net.ConnectException или UnknownHostException. Без прокси код отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...