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]