Créer un certificat auto-signé et le renseigner dans apache2 ou nginx




Introduction



Cet article décrit brièvement comment générer un certificat SSL et le mettre en oeuvre dans apache2.


Générer le certificat



Ici une démo avec mon nom de domaine, mais il faut adapter avec le vôtre :

Dans le dossier /etc/ssl on créé un dossier pour notre domaine :

Code BASH :
domaine=linuxtricks.fr
cd /etc/ssl
mkdir $domaine
cd $domaine


On crée la clé privée avec l'algorithme RSA 2048 bits.

Code BASH :
openssl genrsa -out $domaine.key 2048


Ensuite il faut générer un fichier de « demande de signature de certificat », en anglais CSR

Code BASH :
openssl req -new -key $domaine.key -out $domaine.csr


On répond à un certain nombre de questions.
Il faut bien mettre le nom du serveur tel qu'il est appelé de l'extérieur dans le champ « Common Name » (CN).

Ensuite, on génére le certificat signé au format x509 (ici pour 365jours auto-signé)
Code BASH :
openssl x509 -req -days 365 -in $domaine.csr -signkey $domaine.key -out $domaine.crt


Ce certificat n'est authentifié par aucune autorité, vous aurez donc un message d'avertissement quand vous vous connectez au serveur.
C'est le fichier linuxtricks.fr.crt qu'on ajoute au besoin dans les navigateurs internet pour ne pas accepter le certificat à chaque fois.


Ou au lieu d'auto-signer le certificat on peut envoyer le fichier CSR à une autorité de certification reconnue.


Éditer le "virtualhost" SSL dans apache



Exemple ici sur Gentoo, mais le fichier de configuration peut se trouver dans un autre fichier, comme /etc/httpd/conf.d/ssl.conf pour CentOS :

Code BASH :
vi /etc/apache2/vhosts.d/00_default_ssl_vhost.conf


Éditer les lignes

Code BASH :
        ServerName linuxtricks.fr
        SSLCertificateFile /etc/ssl/linuxtricks.fr/linuxtricks.fr.crt
        SSLCertificateKeyFile /etc/ssl/linuxtricks.fr/linuxtricks.fr.key



Éditer le "virtualhost" SSL dans NGINX



Exemple ici sur CentOS, mais le fichier de configuration peut se trouver dans un autre fichier :

Code BASH :
vi  /etc/nginx/conf.d/ssl.conf


Code BASH :
    ssl                  on;
    ssl_certificate      /etc/ssl/linuxtricks.fr/linuxtricks.fr.crt;
    ssl_certificate_key  /etc/ssl/linuxtricks.fr/linuxtricks.fr.key;
Cette page a été vue 14006 fois