Les certificats SSL auto-signés sont des certificats auto-signés qui sont principalement utilisés dans le développement sur notre machine locale ou notre serveur distant, lorsqu'il n'y a pas de certificat disponible auprès d'une autorité de certification externe.
Ces certificats auto-signés sont rarement utilisés en production notamment car ils ne garantissent pas un niveau de fiabilité suffisant, car ils ne sont pas vérifiés par une Autorité de Certification.
D'autre part, si vous souhaitez obtenir un certificat SSL gratuit émis par une autorité de certification externe, vous pouvez suivre notre guide Comment sécuriser Apache avec Let's Encrypt et Ubuntu 18.04.
Tout d'abord, connectez-vous à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, il est recommandé de suivre notre guide pour vous connecter en toute sécurité avec SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.
Création d'une clé privée
Tout d'abord, créez une clé privée pour rendre votre certificat public.
Pour créer une clé privée, utilisez le client OpenSSL :
$ sudo openssl genrsa -aes128 -out private.key 2048
N. B. Cette commande permet de spécifier la création d'une clé privée d'une longueur de 2048 bits qui sera enregistrée dans le fichier private.key.
Generating RSA private key, 2048 bit long modulus
....+++
...................+++
e is 65537 (0x010001)
Enter pass phrase for privata.key:
Verifying - Enter pass phrase for private.key:
Il vous sera demandé de protéger la clé avec un mot de passe.
Création d'une demande de signature de certificat (CSR)
Après avoir généré votre clé privée, créez une demande de signature de certificat (CSR) qui précisera les détails du certificat.
$ sudo openssl req -new -days 365 -key private.key -out request.csr
OpenSSL vous demandera de spécifier les informations de certificat qui doivent être complétées de cette manière :
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]: IT
State or Province Name (full name) [Some-State]: Lazio
Locality Name (eg, city) []: Rome
Organization Name (eg, company) [Internet Widgits Pty Ltd]: My Society
Organizational Unit Name (eg, section) []: Security
Common Name (e.g. server FQDN or YOUR name) []: example.it
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: An optional company name []:
Il vous sera demandé de protéger la demande de certificat par un mot de passe.
Le fichier request.csr avec toutes les informations utiles renseignées sera créé pour la génération du certificat .
Génération du certificat SSL
À ce stade, procédez à la génération du certificat :
$ sudo openssl x509 -in request.csr -out certificate.crt -req -signkey private.key -days 365
Où :
pour le paramètre -in spécifiez la demande de signature de certificat
pour le paramètre -out indiquez le nom du fichier qui contiendra le certificat
pour le paramètre -signkey spécifiez votre clé privée
pour le paramètre -days précisez le nombre de jours de validité du certificat qui va être créé
Insérer le mot de passe de private.key.
Si la procédure de création s'est correctement déroulée, cette écriture s'affichera à l'écran :
Signature ok
suivi des détails du certificat spécifiés ci-dessus.
Enfin, le fichier certificate.crt est prêt à être utilisé de différentes manières, comme pour protéger la connexion à un serveur Web.