Openssl

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

OpenSSL est une boite à outils comprenant deux librairies et une commande permettant de gérer le chiffrement par SSL.

La librairie est utilisée par certaines applications serveurs pour chiffrer leurs connexions.

Cette page traite de la commande openssl(1)

Encoder un fichier ou une chaine de caractère

L'encodage en base64(1) est couramment utilisé pour permettre d'intégrer des fichiers dans un fichier texte, par exemple :

C'est aussi utilisé par votre client mail pour l'authentification SMTP.

Pour encoder un fichier en base64 :

$ openssl base64 < fichier

Pour décoder un fichier encodé en base64 :

$ openssl base64 -d < fichier_encodé

Pour encoder/décoder une chaine de caractère :

$ echo -n "chaine_à_encoder" | openssl base64
$ echo -n "chaine_à_décoder" | openssl base64 -d

Openssl peut ainsi encoder et décoder via d'autres algorithmes : bef, des, rc2, rc4, etc...

Telnet over SSL

Vous pouvez vous connectez à un serveur (web, mail, ftp,...) qui utilise SSL avec s_client(1) :

$ openssl s_client -crlf -connect <adresse_du_serveur>:<port>

(en remplacant <adresse_du_serveur> par l'adresse IP ou DNS du serveur et <port> par son port d'écoute.

Pour un serveur qui utilise STARTTLS :

$ openssl s_client -crlf -starttls <protocol> <adresse_du_serveur>:<port>

(en remplaçant <protocol> par le protocole utilisé : smtp, ftp, pop3 ou imap)

Vous pouvez alors taper des commandes comme si vous étiez connecté à ce serveur via telnet en clair.

Avec s_server(1), vous pouvez faire des simulations d'un serveur qui fait du SSL.

Gestion des certificats

Afficher les informations d'un certificat

$ openssl x509 -text -noout -in <fichier_du_certificat>

Créer un certificat autosigné

Attention, ce type de certificat génèrera un avertissement dans le logiciel client, mais vous permettra d'utiliser SSL si le client l'accepte. C'est génant si vous voulez créer un site d'e-commerce, mais suffisant pour chiffrer les connexions sur un serveur perso.

directement

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.pem -out mycert.pem

Ceci crééra un certificat autosigné valable un an (365 jours) chiffré en RSA 2048bits dans le fichier mycert.pem, et la clé privée dans mykey.pem.

via sa propre autorité de certification

Vous pouvez aussi vous créer une autorité de certification qui signera tous vos certificats. Deux utilitaires vous permettent de le faire facilement :

Générer une requête de certificat à une autorité de certification extérieure

ToDo

Ressources