Knowledge base dedicated to Linux and applied mathematics.
Accueil > Linux > Commande du jour > Comment générer des certificats auto-signés OpenSSL sous Linux (...)
Toutes les versions de cet article : <English> <français>
Petit tuto pour montrer comment on génère des certificats auto-signés. C’est désormais encore plus simple avec les Makefile mise à disposition par Linux CentOS/RedHat. Je présente ici de manière succincte la manière de générer un certificat auto-signé. Mais avant je vais expliquer en pratique comment fonctionne ces histoires de certificats.
SSL ou TLS son successeur sont des protocoles de sécurisation des échanges sur internet. Lorsque vous vous connectez sur votre site favori, par exemple, vous pouvez voir que ce protocole est activé lorsqu’il y a un cadenas à gauche de https://. Votre navigateur va envoyer une demande de connexion sécurisée auprès du site web. Le site web répond en envoyant à vote navigateur son certificat. Ce dernier contient une clé publique, les informations du site (nom, pays,mail, etc.) et une signature numérique. Le navigateur va alors essayer de vérifier la signature numérique du certificat du site en utilisant les clés publiques contenues dans les certificats des autorités de certifications (AC) intégrés par défaut dans le navigateur.
Ensuite, votre navigateur génère une clé de session via un chiffrement symétrique en utilisant la clé publique contenue dans le certificat. Puis, il transmet cette clé de session au serveur. Le serveur déchiffre alors la clé de session envoyée par votre navigateur grâce à sa clé privée. D’où l’intérêt de bien protéger cette clé privée !!!! Les échanges sont initiés et vous pouvez naviguer.
[root@osboxes ~]# cd /etc/pki/tls/certs/
[root@osboxes certs]# make math-linux.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > math-linux.key
Generating RSA private key, 2048 bit long modulus
...........................................+++
............................+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
[root@osboxes certs]# openssl rsa -in math-linux.key -out math-linux.key
Enter pass phrase for math-linux.key:
writing RSA key
[root@osboxes certs]# make math-linux.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key math-linux.key -out math-linux.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) [XX]:FR
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:Paris
Organization Name (eg, company) [Default Company Ltd]:Math-Linux.com
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:math-linux.com
Email Address []:adm@math-linux.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@osboxes certs]# openssl rsa -in math-linux.key -out math-linux.key
[root@osboxes certs]# openssl x509 -in math-linux.csr -out math-linux.crt -req -signkey math-linux.key -days 3650
Signature ok
subject=/C=FR/L=Paris/O=Math-Linux.com/CN=math-linux.com/emailAddress=adm@math-linux.com
Getting Private key
[root@osboxes certs]#
Dans le répertoire /etc/httpd ou /etc/apache2 doit se trouve un fichier de configuration *ssl.conf ou un environnement dédié à la configuration de ssl
La commande suivante
[root@osboxes certs]# grep -iR SSLCertificateFile /etc/httpd/*
ou
[root@osboxes certs]# grep -iR SSLCertificateFile /etc/apache*/*
vous permettra alors de déterminer le fichier en question. Il faudra alors paramétrer le serveur apache pour qu’il puisse intégrer les certificats que vous venez de générer :
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/html2
ServerName www.math-linux.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/math-linux.crt
SSLCertificateKeyFile /etc/pki/tls/certs/math-linux.key
</VirtualHost>