Installer un certificat ssl StartSSL

26 mars 2015 Sécurité 0 Commentaire

Un petit mémo afin d’expliquer comment installer un certificat ssl StartSSL sous nginx et apache.

 

Je pars du principe que vous avez déjà généré votre clef privée ainsi que votre certificat et que ces deux fichiers ont été sauvegardées sous ssl.key (clef privée) et ssl.crt (certificat) dans le dossier /etc/nginx/ssl/www.domain.tld ou etc/apache2/ssl/www.domain.tld. Vous avez aussi télécharger les certificats StartCom sub.class1.server.ca.pem et ca.pem nécessaire lors de la concaténation.

 

Installer un certificat ssl StartSSL

Commencez par décrypter votre clef privée via la commande suivante

openssl rsa -in ssl.key -out ssl.key

 

Maintenant concaténez votre certificat ssl.crt avec les certificats racines sub.class1.server.ca.pem et ca.pem

cat ssl.crt sub.class1.server.ca.pem ca.pem > ssl-unified.crt

 

Ouvrez le fichier ssl-unified.crt et assurez vous qu’aucune ligne ne ressemble à

-----END CERTIFICATE----------BEGIN CERTIFICATE-----

 

Si tel était le cas ajoutez un retour à la ligne de sorte que le résultat soit le suivant

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

 

Maintenant un peu de ménage, supprimons les fichiers n’étant plus nécessaire

sudo rm sub.class1.server.ca.pem
sudo rm ca.pem

 

Modifiez les droits d’accès au répertoire ainsi qu’à votre clef et votre certificat

sudo chmod -R 700 /etc/nginx/ssl/www.domain.tld
sudo chmod 600 /etc/nginx/ssl/www.domain.tld/ssl-unified.crt
sudo chmod 600 /etc/nginx/ssl/www.domain.tld/ssl.key

 

ou

sudo chmod -R 700 /etc/apache2/ssl/www.domain.tld
sudo chmod 600 /etc/apache2/ssl/www.domain.tld/ssl-unified.crt
sudo chmod 600 /etc/apache2/ssl/www.domain.tld/ssl.key

 

Configuration du serveur web

Sous nginx, ajoutez les lignes suivantes à votre virtual host

listen 443 ssl;

ssl_certificate     /etc/nginx/ssl/www.domain.tld/ssl-unified.crt;
ssl_certificate_key /etc/nginx/ssl/www.domain.tld/ssl.key;

ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:";

 

Sous apache, ajoutez les lignes suivantes à votre virtual host

 SSLEngine on
        SSLCertificateFile    /etc/apache2/ssl/www.domain.tld/ssl-unified.crt
        SSLCertificateKeyFile /etc/apache2/ssl/www.domain.tld/ssl.key

 

N’oubliez pas de rechargez l’instance de votre serveur via sudo service nginx restart ou sudo service apache2 restart