Prérequis : notions de base en shell.
Afin de sécuriser un échange d'informations, il peut s'avérer utile d'utiliser une clef SSL. Et pour que cette clef soit reconnue valide par les utilisateurs, il est nécessaire de faire une demande de signature à une autorité de certification. Cette demande de signature s'appelle une CSR (Certificate Signing Request).
Contexte
Les valeurs utiles ici sont les suivantes :
- Le nom du fichier contenant la clef privée : Entreprise_Serveur.key
- La taille de la clef privée : 8192
- Le nom du fichier contenant la CSR : Entreprise_Serveur.csr
- Le nom de domaine utilisé par le service requérant le certificat SSL : monservice.mondomaine.com
Génération de la clef privée
On commence par générer une clef privée.
openssl genrsa -out Entreprise_Serveur.key 8192
Création du fichier de demande de signature de certificat (CSR) :
Le Common Name (CN) doit être identique au nom de domaine utilisé par le service sur le serveur. C'est l'adresse utilisée pour communiquer avec le service depuis l'extérieur. Ou encore, c'est l'adresse telle que mentionnée dans l'enregistrement A du DNS et pointant vers l'IP publique du serveur.
openssl req -new -key Entreprise_Serveur.key \
-subj "/CN=monservice.mondomaine.com" \
-out Entreprise_Serveur.csr
Si besoin, je peux ajouter d'autres informations à l'option -subj.
Résultat
On se retrouve donc avec deux fichiers :
- Entreprise_Serveur.key : la clef privée de notre certificat. Veillez à en faire une copie de sauvegarde et à bien la protéger, par exemple en changeant ses permissions. Vous pouvez également protéger la clef avec un mot de passe.
- Entreprise_Serveur.csr : c'est le fichier de demande de signature de certificat. Ce fichier peut soit être envoyé à une autorité de certification (CA) afin d'obtenir le certificat signé, en payant. Soit il peut être signé par ... vous-même !