======Mise en place de SSL======
==== Ressources ====
* [[http://forum.ovh.com/showthread.php?78092-Quel-SSL-pour-un-d%E9di%E9-kimsufi|Discussion sur Kimsufi et SSL]]
* [[https://letsencrypt.org/|Utilisation de Letsencryp]]
* [[https://certbot.eff.org/|Certbot]]
* [[https://technique.arscenic.org/ssl-securisation-des/article/startssl-utiliser-un-certificat|Mise en place d'un certificat avec Startssl]]
==== Principes avec Letsencrypt ====
* Letsencrypt est une autorité de certification qui permet d'obtenir des certificats gratuitement et de manière automatisée.
* Pour faciliter l'installation d'un certificat pour un domaine donné, Letsencrypt conseille d'utiliser Certbot :
* Pour Debian 8 (Jessie) :
* Ajouter cette ligne dans // /etc/apt/sources.list // : '' deb http://debian.mirrors.ovh.net/debian/ jessie-backports main ''
* Installer Certbot pour Ngninx : '' sudo apt-get install certbot -t jessie-backports ''
* Lancer Certbot en mode "interactif" et suivre les indications : '' certbot certonly ''
* Sinon, il est possible de passer directement les instructions. Ex. : '' certbot certonly --webroot -w /home/git/gitlab/public -d git.clapas.org ''
* Renouveler automatiquement les certificats Letsencryp (car ils ont une durée de validité de 90 jours) :
* Faire un test de renouvellement : '' certbot renew --dry-run ''
* Tester en s’arrêtant pour vérifier le fichier créé pour le "challenge" : '' certbot certonly --webroot -w /home/admin/.letsencrypt/ -d sql.clapas.ovh --dry-run --debug-challenges ''
* Si le navigateur à mémoriser la redirection 301 de HTTP vers HTTPS, utiliser wget pour vérifier qu'il est possible de récupérer le fichier : '' wget http://sql.clapas.ovh/.well-known/acme-challenge/ ''
* Commande effectuant le renouvellement si nécessaire (à mettre dans un cron) : '' certbot renew --quiet --standalone --pre-hook "service nginx stop" --post-hook "service nginx start" ''
* Sous Debian Jessie, un cron a été installé automatiquement dans // /etc/cron.d/certbot // :
* modifier le fichier pour ajouter les hooks permettant à Nginx de redémarrer et l'utilisation du mécanisme "standalone" pour gérer le cas de Gogs (si les certificats sont renouvelés uniquement) :
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --standalone --pre-hook "service nginx stop" --post-hook "service nginx start"
==== Erreur sec_error_expired_certificate ====
Si l'erreur **sec_error_expired_certificate**, apparait dans Firefox, essayer de redémarrer Nginx, surtout si vous êtes sûr que le certificat est valide.
==== HSTS, Header HTTP et Firefox ====
Dans Firefox, la suppression de l'envoie de l'entête HTTP sur le serveur puis du cache du navigateur ne suffit pas à supprimer la redirection vers HTTPS induite par le header HSTS.
Pour supprimer un tel comportement, il faut éteindre son navigateur. Puis, ouvrir le dossier de son profil Firefox à la recherche du fichier **SiteSecurityServiceState.txt**.
Une fois trouvé, supprimer la ligne correspondant au nom du domaine du site ayant le problème et enregistrer la modification.
Au prochain redémarrage de Firefox le problème sera réglé.
==== Principes avec Startssl ====
A des fins de test, le certificat gratuit fournit par https://www.startssl.com fera l'affaire.
Suivre les indications fournis pour [[https://technique.arscenic.org/ssl-securisation-des/article/startssl-utiliser-un-certificat|créer le certificat]] et le [[https://technique.arscenic.org/ssl-securisation-des/article/creation-d-un-certificate-signing|Certificate Signing Request (CSR)]].
==== Utilisationde S/MIME avec Gmail ====
Avec Firefox, installer [[https://www.penango.com/products|le module Gmail S/MIME]] sous Chrome c'est [[http://prometheusx.net/|le module Mymail-Crypt for Gmail™]].
==== Notes ====
* **CSR : ** message envoyé par le client à l’autorité de certification pour demander un certificat électronique.
* **S/MIME : ** (Secure / Multipurpose Internet Mail Extensions) norme de cryptographie et de signature numérique de courriel encapsulés en format MIME. Elle assure l'intégrité, l'authentification, la non-répudiation et la confidentialité des données. (Source : [[https://fr.wikipedia.org/wiki/S/MIME|Wikipedia]])