Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8039857

Use Custom SSLSocketFactorys for controlling deployment's TLS/SSL protocols.

    XMLWordPrintable

Details

    Description

      As I understand it, here's what is currently implemented in JDK8.

      1. If https.protocols was set before the plugin/webstart starts, the JCP values are ignored. Otherwise https.protocols is set to the JCP values. A custom SSLSocketFactory is installed as the default:

      ./common/share/classes/com/sun/deploy/net/protocol/https/Handler.java:
                    javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

      2. A regular plaintext socket will be created and connected to the server.

      3. This default SSLSocketFactory will create a SSLSocket overlay.

      4. If https.protocols is set, sslSocket.setEnabled(protocols) will be called, overriding whatever protocols were set by the SSLSocketFactory in place.

      I disagree with the approach taken by deploy to use https.protocols instead of the default SSLSocketFactory do the protocol configuration. Deployment's customized SSLSocketFactory should set the JCP-specified values, and call setEnabledProtocols directly.

      Attachments

        Activity

          People

            herrick Andy Herrick (Inactive)
            wetmore Bradford Wetmore
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: