VOOZH about

URL: https://www.javacodegeeks.com/2019/04/viewing-tls-configuration-jdk-13.html

⇱ Viewing TLS Configuration with JDK 13 - Java Code Geeks


JDK 13 Early Access Build 16 is now available and one of the interesting additions it brings is the ability to have the keytool command-line tool display the current system’s TLS configuration information. This is easier than trying to find supported TLS information in separate documentation and match that information to one’s JDK vendor and version.

To see the TLS configuration details with JDK 13 Early Access Build 16, one simply needs to enter keytool -showinfo -tls on the command line, but I’ll describe a few more things about this command in this post.

The next screen snapshot shows that the JDK I’m using for my examples is the JDK 13 Early Access Build 16 and demonstrates that the keytool usage now shows the tool including the -showinfo command.

Simply entering keytool without any commands or options results in the usage statement shown in the screen snapshot. The description for the -showinfo command is, “Displays security related information.”

The next screen snapshot demonstrates the hint that is provided when one tries to use keytool -showinfo without an option (‘Try “keytool -showinfo -tls”.’). The image also shows the options associated with the keytool command -showinfo that are displayed when keytool -showinfo --help is entered.

The --help option used with the -showinfo command displays a -v option, but I found on my Windows installation that this -v option does not provide any additional value over simply using the -tls option. The next screen snapshot shows the results of attempting to use the -v option alone (without the -tls option):

When trying to use -v along with the keytool command -showinfo, we get an error message and a recommendation to try keytool -showinfo -tls instead. That does indeed work better as shown in the next screen snapshot that only shows partial results of what’s returned.

The output from running keytool -showinfo -tls lists “Enabled Protocols” and “Enabled Cipher Suites.” In this case, we see that the “enabled protocols” are TLSv1.3, TLSv1.2, TLSv1.1, and TLSv1.

I found it interesting to look at the code changes required to implement this new command and option for keytool. The implementation uses the JDK’s javax.net.ssl.SSLContext class’s getDefault() method to acquire the “default SSL context.” The returned SSLContext instance’s getSocketFactory() method is invoked and the createSocket() method is called on the returned instance of javax.net.ssl.SSLSocketFactory. The returned instance of javax.net.ssl.SSLSocket has two methods getEnabledProtocols() and getEnabledCipherSuites() that return the values shown above in the output from running keytool -showinfo -tls.

The addition to JDK 13‘s keytool command-line tool of the -showinfo command with its -tls option is available as of Early Access Build 16 and was delivered via JDK-8219861. It’s also worth noting that JDK-8204636 may eventually lead to improvements for JDK’s TLS 1.3 support.

Published on Java Code Geeks with permission by Dustin Marx, partner at our JCG program. See the original article here: Viewing TLS Configuration with JDK 13

Opinions expressed by Java Code Geeks contributors are their own.

Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy

Thank you!

We will contact you soon.

👁 Photo of Dustin Marx
Dustin Marx
April 16th, 2019Last Updated: April 15th, 2019
0 224 2 minutes read
Subscribe

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Back to top button
Close
wpDiscuz