DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Building Modern Full-Stack Python Applications: MVC Architecture Meets Enterprise-Ready Python
  • Using TanStack Query for Scalable React Applications
  • Advanced Error Handling in JavaScript
  • Logfire: Uncomplicated Observability for Python Applications

Trending

  • How to Submit a Post to DZone
  • Implementing Secure API Gateways for Microservices Architecture
  • Rethinking Java CRUDs With Event Sourcing and CQRS Patterns
  • Implementing Observability in Distributed Systems Using OpenTelemetry
  1. DZone
  2. Coding
  3. Languages
  4. Checking TLS and SSL Versions of Applications in JavaScript, Python, and Other Programming Languages

Checking TLS and SSL Versions of Applications in JavaScript, Python, and Other Programming Languages

How to check the versions of TLS and SSL used in applications developed in various programming languages to ensure the security and integrity of data over networks.

By 
Elias Naduvath Varghese user avatar
Elias Naduvath Varghese
·
Apr. 03, 24 · Tutorial
Likes (2)
Comment
Save
Tweet
Share
10.1K Views

Join the DZone community and get the full member experience.

Join For Free

Transport Layer Security (TLS) and Secure Sockets Layer (SSL) are cryptographic protocols that ensure secure data communication over a network. Different versions of these protocols exist, with some having known vulnerabilities, making it critical to verify the TLS/SSL version in use. Below, we will explore how to check the TLS and SSL versions of applications in JavaScript, Python, and other programming languages.

Checking TLS/SSL Version in JavaScript

In JavaScript, the version of TLS or SSL in use depends on the browser or server the script communicates with. Therefore, we can't explicitly check the SSL/TLS version in JavaScript code. However, you can use online tools like SSL Labs' SSL Test to check the SSL/TLS version supported by your server.

Checking TLS/SSL Version in Python

In Python, you can use the built-in SSL module to check the SSL/TLS version. Here's a simple script to connect to a server and print the SSL/TLS version:

Python
 
import socket
import ssl

hostname = 'www.example.com'
context = ssl.create_default_context()

with socket.create_connection((hostname, 443)) as sock:
    with context.wrap_socket(sock, server_hostname=hostname) as ssock:
        print(ssock.version())


This script creates a secure connection to the specified hostname and prints the SSL/TLS version of the connection.

Checking TLS/SSL Version in Java

In Java, the version of TLS or SSL used can be determined through the SSLContext class. You can check the default SSL/TLS protocol version used by your Java application with the following code:

Java
 
import javax.net.ssl.SSLContext;

public class Main {
    public static void main(String[] args) throws Exception {
        SSLContext context = SSLContext.getDefault();
        System.out.println("Default SSL/TLS protocol: " + context.getProtocol());
    }
}


This code will print the default SSL/TLS protocol used by SSLContext.

Checking TLS/SSL Version in C#

In C#, you can check the TLS/SSL version by using the System.Net.Security.SslStream class. Here's an example:

C++
 
using System;
using System.Net.Security;
using System.Net.Sockets;

class Program {

    static void Main() {

        TcpClient client = new TcpClient("www.example.com", 443);

        SslStream sslStream = new SslStream(client.GetStream());

        sslStream.AuthenticateAsClient("www.example.com");

        Console.WriteLine("SSL Protocol: " + sslStream.SslProtocol);

    }

}


This program creates a secure TCP connection to the specified hostname, and then prints the SSL/TLS version of the connection.

Checking TLS/SSL Version at the Operating System Level

Depending on the operating system in use, different methods are available to check the TLS and SSL versions.

On Linux and Unix-Based Systems

Use the openssl command-line tool. The following command will connect to a server and return the SSL/TLS version and cipher:

Shell
 
openssl s_client -connect www.example.com:443


In this command, replace www.example.com with the hostname of the server you want to check.

On Windows

Use the 'Test-NetConnection' cmdlet in PowerShell. This cmdlet doesn't directly provide the SSL/TLS version, but it can be used to test if a server supports a particular version:

PowerShell
 
Test-NetConnection -ComputerName www.example.com -Port 443 -Tls12


This command tests if the server at 'www.example.com' supports TLS 1.2. You can change '-Tls12' to '-Tls11', '-Tls', or '-Ssl3' to test for those versions.

Checking TLS/SSL Version in Docker

To check the TLS/SSL version inside a Docker container, you can use the 'openssl' tool, similar to a Linux system. First, you need to connect to the Docker container:

Shell
 
docker exec -it [container-id] /bin/bash


Replace [container-id] with the ID of your running Docker container. This command will open a bash shell inside the Docker container.

An Example of Checking NodeJS Docker Container Running in Kubernetes

An Example of checking NodeJS Docker Container running in Kubernetes

Then, you can run the 'openssl' command.

Shell
 
openssl s_client -connect www.example.com:443


If 'openssl' is not installed in your Docker container, you can install it using the package manager for the Linux distribution your Docker container is based on. For example, if your container is based on an Ubuntu image, you can use apt-get:

Shell
 
apt-get update

apt-get install openssl


Once openssl is installed, you can use it to check the SSL/TLS version as described above.

Conclusion

Understanding the SSL/TLS version that your application uses is crucial for maintaining secure communication. Depending on the programming language, the SSL/TLS version can be determined either directly within the code or indirectly using online tools. It's essential to stay updated with the latest SSL/TLS versions to ensure your application's security. Please note that it is always recommended to use the most recent version of TLS for security reasons. Older versions such as SSL 2.0, SSL 3.0, and even TLS 1.0 are considered insecure and should not be used.

JavaScript TLS applications Python (language)

Opinions expressed by DZone contributors are their own.

Related

  • Building Modern Full-Stack Python Applications: MVC Architecture Meets Enterprise-Ready Python
  • Using TanStack Query for Scalable React Applications
  • Advanced Error Handling in JavaScript
  • Logfire: Uncomplicated Observability for Python Applications

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook