Généralités système Linux

Openssl : Création de certificats et CA autosignés

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

apache_ssl







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 :
cd /etc/ssl
mkdir linuxtricks.fr
cd linuxtricks.fr




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



Code BASH :
openssl genrsa -out linuxtricks.fr.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 server.key -out linuxtricks.fr.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 linuxtricks.fr.csr -signkey linuxtricks.fr.key -out linuxtricks.fr.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 (CACert par exemple)





É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