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