By default, WS SSL will use the most secure version of the TLS protocol available in the JVM.
- On JDK 1.7 and later, the default protocol is “TLSv1.2”.
- On JDK 1.6, the default protocol is “TLSv1”.
The full protocol list in JSSE is available in the Standard Algorithm Name Documentation.
§Defining the default protocol
If you want to define a different default protocol, you can set it specifically in the client:
# Passed into SSLContext.getInstance() ws.ssl.protocol = "TLSv1.2"
If you want to define the list of enabled protocols, you can do so explicitly:
# passed into sslContext.getDefaultParameters().setEnabledProtocols() ws.ssl.enabledProtocols = [ "TLSv1.2", "TLSv1.1", "TLSv1" ]
If you are on JDK 1.8, you can also set the
jdk.tls.client.protocols system property to enable client protocols globally.
WS recognizes “SSLv3”, “SSLv2” and “SSLv2Hello” as weak protocols with a number of security issues, and will throw an exception if they are in the
ws.ssl.enabledProtocols list. Virtually all servers support
TLSv1, so there is no advantage in using these older protocols.
The debug options for configuring protocol are:
ws.ssl.debug = [ "ssl", "sslctx", "handshake", "verbose", "data" ]
Next: Configuring Cipher Suites
Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.