Dans ce TD vous verrez comment mettre en place une communication sécurisée (TLS/SSL) entre un client et un serveur. Pour ce faire, à l’aide d’OpenSSL (utilisé en ligne de commande), vous utiliserez les fonctions classiques de la cryptographie et des communications sécurisées : Certificats, SSL. Pour réaliser ce TD, vous aurez besoin des commandes de base d’OpenSSL.
Chaine de certification
Affichage d’une chaine de certification
Tous les serveurs publics devraient posséder une chaine de certification. Car c’est grâce à cette chaine qu’un client peu avoir confiance ou non en ce serveur. Généralement plusieurs serveurs publics essayent d’avoir le même certificat racine pour qu’un client ait le moins de certificat à connaitre.
Vous devrez stocker/convertir la chaine de certification au format PEM.
Création d’une chaine de certification
Maintenant que vous avez vu à quoi ressemblait une chaine de certification, il est temps d’en créer une.
Les 2 niveaux de cette chaine signifient qu’elle devra comprendre :
- 1 autorité racine (au choix RSA ou ECDSA).
- 2 certificats finaux (1 pour client, 1 pour serveur)
Communication TLS/SSL
Pour effectuer des tests de connexions sécurisés, OpenSSL est pourvu d'un client et d'un serveur web. Ce sont les outils openssl s_client et s_server.
Maintenant que vous avez vérifié que votre communication locale fonctionne il est temps d’essayer à l’extérieur.
Demande de certification
Le but est d’utiliser un certificat root commun