Ressources pour développeur web

Théme de la semaine : CODEX CLI

TestSSL.sh : analyser la sécurité SSL/TLS d’un serveur

Temps de lecture estimé : 12 minutes
Accueil CyberSécurité TestSSL.sh : analyser la sécurité SSL/TLS d’un serveur

Un certificat SSL valide ne garantit pas forcément que votre site est correctement sécurisé. Des protocoles obsolètes, des algorithmes faibles ou des erreurs de configuration peuvent laisser des failles exploitables sans que vous vous en rendiez compte. C’est justement pour détecter ce type de problème que testssl.sh a été conçu.

Dans ce tutoriel, vous allez apprendre à installer et utiliser testssl.sh pour analyser la sécurité SSL/TLS de vos serveurs, vérifier vos certificats HTTPS et identifier les vulnérabilités les plus courantes. Même si vous débutez dans l’administration système ou la cybersécurité, vous découvrirez comment réaliser un audit complet et interpréter les résultats simplement.

  • Apprendre à auditer facilement la sécurité SSL/TLS de n’importe quel site web.
  • Identifier les vulnérabilités et mauvaises configurations avant qu’elles ne deviennent problématiques.
  • Mettre en place une surveillance régulière pour renforcer durablement la sécurité de vos serveurs.

Lorsque l’on possède un site web, un serveur ou même une simple application accessible en ligne, la sécurité des connexions est un sujet incontournable.

Aujourd’hui, les visiteurs s’attendent à voir le fameux cadenas dans leur navigateur et à bénéficier d’une connexion chiffrée. Pourtant, avoir un certificat SSL installé ne signifie pas automatiquement que votre configuration est sécurisée.

  • C’est précisément là qu’intervient testssl.sh.

Cet outil gratuit permet d’analyser en profondeur la configuration SSL/TLS d’un serveur afin de détecter les faiblesses, les protocoles obsolètes, les suites cryptographiques vulnérables ou encore les erreurs de configuration pouvant mettre en danger les utilisateurs.

Qu’est-ce que testssl.sh ?

Testssl.sh est un outil open source écrit sous forme de script Shell.

Son objectif est simple : analyser la sécurité SSL/TLS d’un serveur à partir de son nom de domaine ou de son adresse IP.

Contrairement à certains scanners de sécurité complexes nécessitant une installation lourde ou des connaissances avancées, testssl.sh fonctionne directement depuis un terminal et fournit des résultats très détaillés.

Il permet notamment de vérifier :

  • les versions SSL et TLS supportées ;
  • la qualité du certificat ;
  • les algorithmes de chiffrement utilisés ;
  • les vulnérabilités connues ;
  • les problèmes de configuration ;
  • la prise en charge du protocole HTTP/2 ;
  • la présence du HSTS ;
  • la résistance à certaines attaques célèbres.
TestSSL.sh

En quelques secondes, vous obtenez un véritable bilan de santé de votre configuration HTTPS.

Pourquoi utiliser testssl.sh ?

Beaucoup d’administrateurs installent un certificat SSL puis considèrent leur travail terminé.

Malheureusement, ce n’est pas aussi simple.

Imaginez une maison équipée d’une porte blindée mais dont les fenêtres restent ouvertes. La porte est solide, mais l’ensemble demeure vulnérable.

Avec SSL/TLS, c’est exactement la même chose.

Un certificat valide peut cohabiter avec :

  • des protocoles obsolètes ;
  • des algorithmes faibles ;
  • des configurations vulnérables ;
  • des paramètres mal optimisés.

Testssl.sh permet justement de repérer ces problèmes avant qu’ils ne soient exploités.

Pour un développeur web, un administrateur système ou un webmaster, il constitue donc un excellent outil de vérification régulière.

Comprendre rapidement SSL et TLS

Avant d’aller plus loin, prenons quelques minutes pour comprendre ce que testssl analyse réellement.

SSL et TLS, quelle différence ?

  • SSL signifie Secure Sockets Layer.
  • TLS signifie Transport Layer Security.

TLS est en réalité le successeur de SSL.

Aujourd’hui, lorsque l’on parle de certificat SSL, on utilise souvent un terme historique. En pratique, les connexions modernes utilisent TLS.

Les anciennes versions SSL sont désormais considérées comme vulnérables.

Par exemple :

  • SSL 2.0 est cassé depuis longtemps ;
  • SSL 3.0 est vulnérable à l’attaque POODLE ;
  • TLS 1.0 et TLS 1.1 sont progressivement abandonnés.

Les versions recommandées sont :

  • TLS 1.2 ;
  • TLS 1.3.

L’un des premiers rôles de testssl.sh consiste justement à vérifier quelles versions sont activées sur votre serveur.

Installation de testssl.sh

L’installation est relativement simple.

Installation sous Linux

Commencez par cloner le dépôt Git officiel.

git clone https://github.com/drwetter/testssl.sh.git

Cette commande télécharge l’ensemble du projet dans un dossier nommé testssl.sh.

Entrez ensuite dans ce dossier :

cd testssl.sh

Vous pouvez vérifier que tout fonctionne :

./testssl.sh --help

Si l’aide s’affiche, l’installation est réussie.

Installation via GitHub ZIP

Si vous préférez ne pas utiliser Git, rendez-vous sur la page GitHub du projet et téléchargez l’archive ZIP.

Décompressez-la puis ouvrez un terminal dans le dossier obtenu.

Installer testssl.sh avec Homebrew depuis macOS

Si vous utilisez macOS, l’installation de testssl.sh est encore plus simple grâce à Homebrew. Ce gestionnaire de paquets très populaire permet d’installer des logiciels en une seule commande, sans avoir à télécharger manuellement le projet depuis GitHub.

Commencez par vérifier que Homebrew est installé sur votre machine :

brew --version

Si un numéro de version s’affiche, vous pouvez passer à l’étape suivante. Dans le cas contraire, installez Homebrew avant de continuer.

Pour installer testssl.sh, exécutez simplement la commande suivante :

brew install testssl

Homebrew va automatiquement télécharger et installer l’outil ainsi que ses éventuelles dépendances.

Une fois l’installation terminée, vérifiez que tout fonctionne correctement :

testssl.sh --version

Vous devriez obtenir un numéro de version similaire à celui-ci :

testssl.sh 3.2.3

L’avantage de cette méthode est également la gestion simplifiée des mises à jour. Pour installer la dernière version disponible de testssl.sh, il suffit d’exécuter :

brew upgrade testssl

Vous pouvez désormais lancer vos analyses SSL/TLS directement depuis n’importe quel terminal, sans avoir à vous placer dans un dossier spécifique :

testssl.sh blog.crea-troyes.fr

Pour les utilisateurs de macOS, Homebrew reste généralement la méthode la plus rapide et la plus confortable pour installer et maintenir testssl.sh à jour.

Vérifier les dépendances

Testssl.sh utilise principalement OpenSSL.

Pour vérifier sa présence :

openssl version

Vous devriez obtenir un résultat ressemblant à ceci :

OpenSSL 3.6.1

Réaliser son premier audit SSL

Passons maintenant à la pratique.

Imaginons que vous souhaitiez analyser votre site.

La commande est extrêmement simple :

./testssl.sh blog.crea-troyes.fr

Ou si testSSL.sh a été installé depuis homebrew (nous utiliserons cette méthode pour le reste du tutoriel) :

testssl.sh blog.crea-troyes.fr

Quelques secondes plus tard, l’analyse démarre.

L’outil va examiner :

  • le certificat ;
  • les protocoles ;
  • les algorithmes ;
  • les vulnérabilités ;
  • les paramètres HTTPS.

Le résultat peut sembler impressionnant au premier abord.

Analyse TESTSSL.SH

Rassurez-vous : nous allons le décortiquer ensemble.

Analyse du certificat SSL

L’une des premières sections concerne le certificat.

Vous pouvez y trouver :

Certificate:
Common Name (CN) = blog.crea-troyes.fr

Le Common Name correspond au nom de domaine principal protégé par le certificat.

Vous trouverez également :

Issuer = Let's Encrypt

L’émetteur représente l’autorité de certification ayant délivré le certificat.

Vérifier la date d’expiration

Testssl.sh affiche aussi la durée de validité.

Exemple :

Valid until: 2026-08-15

Cette information est précieuse.

Un certificat expiré provoquera immédiatement des alertes dans les navigateurs.

Vérification des protocoles TLS

Cette section est particulièrement importante.

Exemple :

SSLv2      not offered
SSLv3      not offered
TLS 1.0    not offered
TLS 1.1    not offered
TLS 1.2    offered
TLS 1.3    offered

Ici, la configuration est excellente.

Protocole SSL

Les anciens protocoles sont désactivés et seules les versions modernes restent disponibles.

  • Si vous voyez SSLv3 ou TLS 1.0 activés, il est généralement recommandé de les désactiver.

Comprendre les suites cryptographiques

Le terme peut sembler intimidant.

En réalité, une suite cryptographique est simplement un ensemble d’algorithmes utilisés pour sécuriser la connexion.

Exemple :

TLS_AES_256_GCM_SHA384

Derrière ce nom compliqué se cachent plusieurs mécanismes :

  • chiffrement
  • échange de clés
  • intégrité des données.

Testssl.sh analyse chacune de ces suites et signale les éventuelles faiblesses.

👉 Pour ceux qui débutent, découvrez notre tutoriels en plusieurs chapitres sur la cryptographie.

Pourquoi est-ce important ?

Les algorithmes évoluent constamment.

Ce qui était considéré comme sécurisé il y a dix ans peut être déconseillé aujourd’hui.

L’outil vous aide donc à identifier les technologies devenues obsolètes.

Détection des vulnérabilités connues

C’est souvent la partie la plus attendue.

Testssl.sh recherche automatiquement de nombreuses vulnérabilités célèbres.

Test de vulnérabilités par TestSSL.sh

Par exemple :

Heartbleed

Heartbleed (CVE-2014-0160) not vulnerable

Heartbleed est probablement l’une des failles SSL les plus connues de l’histoire.

Elle permettait de lire une partie de la mémoire du serveur.

POODLE

POODLE not vulnerable

Cette attaque exploitait SSL 3.0.

Si ce protocole est désactivé, le risque disparaît.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

ROBOT

ROBOT not vulnerable

Cette vulnérabilité ciblait certaines implémentations RSA.

SWEET32

SWEET32 not vulnerable

Elle concernait certains algorithmes de chiffrement devenus trop faibles.

Vérifier la présence du HSTS

HSTS signifie HTTP Strict Transport Security.

Ce mécanisme indique aux navigateurs : « Utilise toujours HTTPS pour ce site. »

Testssl.sh vérifie sa présence.

Exemple :

HSTS enabled

Cette configuration réduit fortement les risques d’attaque par interception.

Tester un port spécifique

Par défaut, l’outil analyse le port 443.

Vous pouvez toutefois tester un autre port.

Exemple :

testssl.sh monserveur.fr:8443

Pratique pour analyser des applications ou interfaces d’administration hébergées sur des ports différents.

Scanner une adresse IP

Vous pouvez également utiliser une adresse IP.

testssl.sh 192.168.1.10

Cette fonctionnalité est particulièrement utile dans un réseau local.

Générer un rapport HTML

Les résultats affichés dans le terminal sont parfois difficiles à partager.

Testssl.sh permet de générer un rapport HTML.

testssl.sh --htmlfile rapport.html blog.crea-troyes.fr

Une fois terminé, ouvrez simplement le fichier dans votre navigateur.

Vous obtiendrez un rapport beaucoup plus lisible.

Exporter les résultats en JSON

Les développeurs apprécieront particulièrement cette option.

testssl.sh --jsonfile rapport.json blog.crea-troyes.fr

Le format JSON est idéal pour :

  • l’automatisation ;
  • l’intégration dans des scripts ;
  • la création de tableaux de bord.

Analyser plusieurs domaines

Supposons que vous gériez plusieurs sites web.

Vous pouvez automatiser les audits.

Exemple simple :

for site in site1.fr site2.fr site3.fr
do
    testssl.sh $site
done

Le script analysera chaque domaine successivement.

Une excellente solution pour vérifier régulièrement plusieurs serveurs.

Exemple complet d’audit

Prenons un cas concret.

Commande :

testssl.sh blog.crea-troyes.fr

Voici comment interpréter les résultats :

TestSSL.sh resultat

Voici l’analyse des résultats du scan testssl.sh sur blog.crea-troyes.fr. Globalement, c’est une très bonne configuration SSL/TLS. On obtient un score A+ (93/100), ce qui place votre site parmi les configurations sécurisées.

Verdict global

  • ✅ TLS 1.2 et TLS 1.3 activés
  • ✅ SSLv2, SSLv3, TLS 1.0 et TLS 1.1 désactivés
  • ✅ Certificat valide
  • ✅ HSTS activé
  • ✅ HTTP/2 activé
  • ✅ Aucune vulnérabilité critique détectée
  • ✅ Score A+

Même si il reste quelques optimisations possibles …

Les anciens protocoles sont désactivés

Nous n’acceptons que TLS 1.2 et TLS 1.3 :

TLS 1.2 offered
TLS 1.3 offered

Les protocoles vulnérables sont désactivés :

SSLv2 not offered
SSLv3 not offered
TLS 1.0 not offered
TLS 1.1 not offered

C’est exactement ce qu’on attend en 2026.

HTTP/2 est activé

ALPN/HTTP2 h2, http/1.1 (offered)

C’est bon pour :

  • les performances
  • le référencement SEO
  • l’expérience utilisateur

Chiffrement moderne

Les meilleures suites TLS 1.3 sont présentes :

TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256

Ces algorithmes sont actuellement considérés comme très sûrs.

Forward Secrecy activé

FS is offered (OK)

C’est un point très important.

Même si la clé privée du serveur était compromise un jour, les anciennes communications resteraient protégées.

Certificat SSL

Le certificat Sectigo est valide jusqu’au :

2026-10-30

et couvre :

*.crea-troyes.fr
crea-troyes.fr

Aucun problème de confiance n’a été détecté :

Chain of trust Ok

HSTS activé

Strict Transport Security
730 days
includeSubDomains
preload

Excellent.

Cela force les navigateurs à toujours utiliser HTTPS.

En-têtes de sécurité

Nous avons déjà :

X-Frame-Options
X-Content-Type-Options
Content-Security-Policy
Permissions-Policy
Referrer-Policy

C’est rare de voir un blog WordPress aussi bien configuré par défaut 😉

👉 Tout savoir sur la sécurité des header.

Compression GZIP détectée

testssl.sh signale :

BREACH potentially NOT ok
gzip HTTP compression detected

Pas de panique. Cette alerte apparaît quasiment partout lorsqu’un site utilise la compression GZIP.

Pour un blog WordPress classique le risque très faible et le gain de performance apporté par GZIP est bien plus intéressant.

OCSP Stapling absent

OCSP stapling not offered

Ce n’est pas grave. L’OCSP Stapling améliore :

  • les performances
  • la vérification de révocation du certificat

Si votre hébergeur permet son activation, c’est un petit plus. Mais ce n’est absolument pas indispensable.

Compatibilité navigateurs

Tous les navigateurs modernes fonctionnent :

  • Chrome
  • Firefox
  • Edge
  • Safari
  • Android récents
  • Java récents

Les seuls qui échouent :

IE 8 Windows 7
Java 7

Mais en 2026, ce n’est absolument pas un problème.

Note finale

CritèreNote
Protocoles TLS10/10
Certificat10/10
Chiffrement9/10
En-têtes de sécurité10/10
Compatibilité9/10
Vulnérabilités9/10
Configuration globale9,5/10

Le score A+ obtenu par testssl.sh est totalement mérité !

Comment interpréter les couleurs ?

Testssl.sh utilise généralement plusieurs niveaux d’alerte.

  • Les éléments verts indiquent une configuration correcte.
  • Les avertissements jaunes méritent une vérification.
  • Les résultats rouges signalent généralement un problème important ou une vulnérabilité.

Une bonne habitude consiste à traiter immédiatement les alertes rouges puis à améliorer progressivement les avertissements jaunes.

Utiliser testssl.sh dans une démarche de sécurité continue

Une erreur fréquente consiste à lancer un audit une seule fois.

La sécurité n’est pas un événement ponctuel.

  • C’est un processus continu.

Un serveur mis à jour aujourd’hui peut devenir vulnérable demain à cause :

  • d’une nouvelle faille ;
  • d’un changement de configuration ;
  • d’une mise à jour logicielle ;
  • d’un certificat expiré.

L’idéal est donc d’intégrer testssl.sh dans une routine régulière.

Par exemple :

  • après chaque mise à jour serveur ;
  • après chaque changement HTTPS ;
  • une fois par mois ;
  • avant une mise en production.

Bonnes pratiques complémentaires

Même avec un excellent score testssl.sh, certaines bonnes pratiques restent essentielles.

  1. Maintenez toujours votre système à jour.
  2. Utilisez TLS 1.2 et TLS 1.3.
  3. Renouvelez vos certificats avant leur expiration.
  4. Activez HSTS lorsque cela est possible.
  5. Surveillez régulièrement les nouvelles vulnérabilités publiées.
  6. Enfin, n’oubliez jamais qu’aucun outil ne remplace une véritable démarche de sécurité globale.

Testssl.sh est un excellent détective, mais il ne peut pas réparer les problèmes à votre place.

Les limites de testssl.sh

Malgré ses nombreuses qualités, l’outil possède quelques limites.

Il se concentre principalement sur SSL et TLS.

Il ne remplace pas :

  • un audit de sécurité complet
  • un test d’intrusion
  • une analyse du code source
  • un scanner de vulnérabilités applicatives

Considérez-le comme un spécialiste de la sécurité HTTPS plutôt que comme un couteau suisse universel.

C’est déjà un travail considérable, et il l’accomplit remarquablement bien.

Tableau récapitulatif des principales commandes testssl.sh

CommandeDescription
testssl.sh domaine.frLance un audit SSL/TLS complet du domaine.
testssl.sh https://domaine.frAnalyse un site en utilisant son URL complète.
testssl.sh domaine.fr:8443Analyse un service HTTPS sur un port spécifique.
testssl.sh 192.168.1.10Analyse un serveur à partir de son adresse IP.
testssl.sh --helpAffiche l’aide complète et toutes les options disponibles.
testssl.sh --versionAffiche la version installée de testssl.sh.
testssl.sh --fast domaine.frEffectue une analyse plus rapide en limitant certains tests.
testssl.sh --protocols domaine.frVérifie uniquement les protocoles SSL/TLS supportés.
testssl.sh --vulnerable domaine.frRecherche uniquement les vulnérabilités connues.
testssl.sh --headers domaine.frAnalyse les en-têtes HTTP de sécurité.
testssl.sh --hints domaine.frAffiche des recommandations pour améliorer la configuration.
testssl.sh --html rapport.html domaine.frGénère un rapport HTML.
testssl.sh --jsonfile rapport.json domaine.frExporte les résultats au format JSON.
testssl.sh --csvfile rapport.csv domaine.frExporte les résultats au format CSV.
testssl.sh --logfile rapport.log domaine.frEnregistre les résultats dans un fichier journal.
testssl.sh --color 0 domaine.frDésactive les couleurs dans le terminal.
testssl.sh --parallel domaine.frActive certains tests en parallèle pour accélérer l’analyse.
testssl.sh --sneaky domaine.frRéduit l’intensité des scans pour être plus discret.
testssl.sh --warnings batch domaine.frAffiche uniquement les avertissements importants.
testssl.sh --openssl-timeout 5 domaine.frDéfinit un délai d’attente personnalisé pour OpenSSL.

Les commandes à connaître absolument

Si vous débutez avec testssl.sh, retenez principalement ces quatre commandes :

testssl.sh domaine.fr

Audit complet du serveur.

testssl.sh --protocols domaine.fr

Vérification des versions SSL/TLS.

testssl.sh --vulnerable domaine.fr

Recherche des vulnérabilités connues.

testssl.sh --html rapport.html domaine.fr

Génération d’un rapport HTML facile à consulter et à partager.

Testssl.sh est-il gratuit ?

Oui, testssl.sh est un outil open source entièrement gratuit. Vous pouvez le télécharger, l’utiliser et le modifier librement pour analyser la sécurité SSL/TLS de vos serveurs ou sites web.

Peut-on utiliser testssl.sh sans être expert en cybersécurité ?

Absolument. Même si les résultats contiennent parfois des termes techniques, l’outil reste accessible aux débutants. Avec quelques notions de base sur SSL et TLS, vous pourrez rapidement identifier les principaux problèmes de sécurité de votre configuration HTTPS.

À quelle fréquence faut-il lancer un audit avec testssl.sh ?

Il est conseillé d’exécuter testssl.sh après chaque modification importante de votre serveur ou de votre certificat SSL. Pour une bonne surveillance, un contrôle mensuel permet également de détecter rapidement d’éventuelles faiblesses ou erreurs de configuration.


Testssl.sh fait partie de ces outils que tout développeur web, administrateur système ou propriétaire de site devrait connaître. Gratuit, open source et complet, il permet de vérifier si la configuration SSL/TLS d’un serveur respecte les bonnes pratiques actuelles.

Ce qui le rend particulièrement intéressant, c’est sa simplicité d’utilisation. Une simple commande suffit pour obtenir un diagnostic détaillé que même un débutant peut progressivement apprendre à comprendre. Au fil de vos analyses, vous développerez naturellement de meilleurs réflexes en matière de sécurité et vous serez capable d’identifier de plus en plus rapidement les configurations à risque.

Le meilleur conseil reste maintenant de passer à l’action. Installez testssl.sh, analysez vos propres sites, comparez les résultats et essayez de comprendre chaque information remontée par l’outil. La sécurité web est un domaine passionnant où l’on apprend constamment de nouvelles choses, et testssl.sh constitue un excellent point de départ pour progresser sereinement.