Table des matières

Créer un certificat autosigné avec OpenSSH

Présentation

Un certificat autosigné peut servir :

Ce document utilise le logiciel OpenSSH soit sous Linux ou Windows.

Démarche

La création d'un certificat auto-signé se réalise en trois étapes

Dans ce document est présenté la création d'un certificat autosigné pour un utilisateur

Avec OpenSSL, la clé privée générée contient également les informations de la clé publique. Il n'est donc pas nécessaire de générer la clé publique séparément.

Création de la clé privée

Dans l'invite de commandes lancez la commande suivante :

$ openssl genrsa -aes256 -out user-private.pem 2048

Indiquez une pass-phrase pour votre nouvelle clé, pass-phrase qui sera demandé lors de la création du certificat.

Explication :

Pour visualiser le contenu de cette clé privée :

openssl rsa -in user-private.pem -text

La commande suivant permet de connaître la liste des chiffrements disponibles :

$ openssl list -cipher-algorithms

Pour ne pas associer de pass-phrase à la clé privée ne précisez pas l'algorithme de chiffrement en lançant la commande :

$ openssl genrsa -out user-private.pem 2048

Générer la clé publique RSA (contenu dans le fichier user-private.pem)

$ openssl rsa -in user-private.pem -out user-public.pem -pubout
Enter pass phrase for user-private.pem
Writing RSA key

Pour visualiser le contenu de cette clé privée :

$ openssl rsa -in user-public.pem -pubin -text

Vous disposez maintenant :

  • d'une clé privée user-private.pem ;
  • d'une clé publique user-public.pem.

Il est possible de supprimer la pass-phrase associée à la clé privée en générant une nouvelle clé privée à partir de cela déjà créer. Pour cela exécutez la commande suivante :

$ openssl rsa -in user-private.pem -out user-private_nopass.pem

Création de la requête de demande de signature du certificat

Pour générer la requête de demande de signature, il faut utiliser le fichier contenant la clé privée.

Lors de la création de la requête vous avez à saisir vos informations d'identification et il est important d'indiquer un Common Name unique.

$ openssl req -new -key user-private.pem  -out user.csr
 
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Haute-Vienne
Locality Name (eg, city) []:Limoges
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lycée Syzanne Valadon
Organizational Unit Name (eg, section) []:BTS SIO
Common Name (e.g. server FQDN or YOUR name) []:user
Email Address []:
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Explication :

Génération du certificat auto-signé

Lors de la génération d'un certificat autosigné, vous avez à préciser le format du certificat (x509) et la durée de validation (ici 365 jours)

$ openssl x509 -req -days 365 -in user.csr -signkey user-private.pem -out user.crt
 
Signature ok
subject=C = FR, ST = Haute-Vienne, L = Limoges, O = Lyc\C3\83\C2\A9e Suzanne Valadon, OU = BTS SIO, CN = user
Getting Private key
Enter pass phrase for user-private.pem:
sio@vpsdebian:~/certificat$

Le certificat généré est le fichier .crt et la clé privée associée, le fichier .pem.

Visualisation des informations du certificat

Utilisation de la clé publique pour une connexion distance en SSH

Génération de des informations qui seront ensuite copiée dans le fichier ~/.ssh/authorized_keys du serveur distant:

# ssh-keygen -i -m PKCS8 -f user-public.pem >> nom_fichier

Le contenu du fichier nom_fichier doit être ajouter au contenu du fichier ~/.ssh/authorizedkeys.

Vous pouvez“ ensuite vous connecter au serveur distant en indiquant votre clé privée :

$ ssh -i user-private.pem user@adresseIPserverur

Format de fichier

Lien : https://qastack.fr/server/9708/what-is-a-pem-file-and-how-does-it-differ-from-other-openssl-generated-key-file

En résumé, il existe quatre manières différentes de présenter les certificats et leurs composants: