Programming Tips - Java: Get supported SSL/TLS protocols

Date: 2023jan19 Update: 2025sep25 Language: Java Q. Java: Get supported SSL/TLS protocols A. Here is a full example:
import javax.net.ssl.SSLContext; import java.security.NoSuchAlgorithmException; import java.util.Arrays; class Demo { public static final void main(String []args) throws NoSuchAlgorithmException { final String protocols[] = SSLContext.getDefault().getSupportedSSLParameters().getProtocols(); System.out.println("tls protocols=" + Arrays.toString(protocols)); } }
Output (at one time):
tls protocols=[TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello]
This includes SSL protocols which are obsolete so you can do:
import java.util.HashSet; import javax.net.ssl.SSLContext; import java.security.NoSuchAlgorithmException; class Demo { static HashSet<String> getTlsProtocols() { HashSet<String> set = new HashSet<>(); try { String protocols[] = SSLContext.getDefault().getSupportedSSLParameters().getProtocols(); for (String protocol : protocols) { if (protocol.startsWith("TLS")) { set.add(protocol); } } } catch (NoSuchAlgorithmException ex) { // Fall thru } return set; } public static final void main(String []args) { System.out.println("tls protocols=" + getTlsProtocols()); } }
Output (at one time):
tls protocols=[TLSv1, TLSv1.3, TLSv1.2, TLSv1.1]