Dans ce tutoriel, nous allons vous montrer comment installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS. Pour ceux d'entre vous qui ne le savaient pas, LetsEncrypt est une autorité de certification ouverte gratuite (CA ) qui fournit des certificats gratuits pour les sites Web et d'autres services. Le service est soutenu par l'Electronic Frontier Foundation, Mozilla, Cisco Systems et Akamai. Malheureusement, les certificats LetsEncrypt.org ont actuellement une durée de vie de 3 mois. Cela signifie que vous devrez renouvelez votre certificat tous les trimestres pour l'instant.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple et suppose que vous s'exécutent dans le compte root, sinon vous devrez peut-être ajouter 'sudo
‘ aux commandes pour obtenir les privilèges root. Je vais vous montrer l'installation étape par étape de Let's Encrypt SSL avec Nginx sur un serveur Ubuntu 16.04 LTS (Xenial Xerus).
Prérequis
- Un serveur exécutant l'un des systèmes d'exploitation suivants :Ubuntu 16.04 LTS (Xenial Xerus).
- Il est recommandé d'utiliser une nouvelle installation du système d'exploitation pour éviter tout problème potentiel.
- Accès SSH au serveur (ou ouvrez simplement Terminal si vous êtes sur un ordinateur).
- Un
non-root sudo user
ou l'accès à l'root user
. Nous vous recommandons d'agir en tant qu'non-root sudo user
, cependant, car vous pouvez endommager votre système si vous ne faites pas attention lorsque vous agissez en tant que root.
Installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS
Étape 1. Tout d'abord, assurez-vous que tous vos packages système sont à jour en exécutant le suivant apt-get
commandes dans le terminal.
sudo apt-get updatesudo apt-get upgrade
Étape 2. Installation de Let's Encrypt SSL sur Ubuntu 16.04.
La première étape consiste à installer certbot, le logiciel client qui automatisera presque tout dans le processus :
add-apt-repository ppa:certbot/certbotapt-get updateapt-get install certbot
Nginx doit également être installé et en cours d'exécution. Bien sûr, si vous ajoutez des certificats sur un hôte Web précédemment configuré, celui-ci sera déjà installé :
apt-get install nginxsystemctl start nginx
La première étape pour installer let's encrypt SSL sur Ubuntu Linux consiste à ajouter une configuration simple dans la configuration de bloc de votre serveur Nginx. Ajoutez cette ligne à votre configuration de bloc de serveur :
location ~ /.well-known { allow all ; }Enregistrer et quitter pour appliquer les modifications :
### nginx -tnginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussiRedémarrez Nginx :
systemctl redémarrer nginxObtenir un certificat avec Certbot :
Exécutez la commande comme vous le voyez ci-dessous, remplacez "idroot.us" par votre vrai nom de domaine et /var/www/idroot.us par votre vrai chemin webroot :
certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.usRésultat :
[[email protected]:~]certbot certonly -a webroot --webroot-path=/var/www/idroot.us -d idroot.us -d www.idroot.usEnregistrement du journal de débogage dans /var/log /letsencrypt/letsencrypt.logObtention d'un nouveau certificatExécution des défis suivants :Challenge http-01 pour idroot.usUtilisation du chemin Webroot /var/www/html pour tous les domaines non correspondants.Attente de vérification...Nettoyage des défisGénération de la clé (2 048 bits) :/etc/letsencrypt/keys/0001_key-certbot.pemCréation d'un CSR :/etc/letsencrypt/csr/0001_csr-certbot.pemREMARQUES IMPORTANTES : - Félicitations ! Votre certificat et votre chaîne ont été enregistrés dans /etc/letsencrypt/live/idroot.us/fullchain.pem. Votre certificat expirera le 2017-07-16. Pour obtenir ultérieurement une nouvelle version ou une version modifiée de ce certificat, il vous suffit d'exécuter à nouveau certbot. Pour renouveler *tous* vos certificats de manière non interactive, exécutez "certbot renouveler" - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en : Faire un don à ISRG / Let's Encrypt : https://letsencrypt.org/donate Faire un don à EFF :https://eff.org/donate-le[[email protected]:~]Étape 3. Configurez SSL/TLS sur le serveur Web NGINX.
Tout d'abord, modifiez le fichier de blocage du serveur que vous avez spécifié lors de la configuration via Certbot et ajoutez ces trois directives :
écouter 443 ssl http2;ssl_certificate /etc/letsencrypt/live/idroot.us/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/idroot.us/privkey.pem;La configuration complète du bloc de serveur Nginx peut ressembler à ceci :
serveur { écouter 80 ; nom_serveur idroot.us www.idroot.us ; réécrire ^(.*) https://idroot.us$1 permanent;}server { access_log off; log_not_found désactivé ; error_log logs/idroot.us-error_log avertir ; nom_serveur idroot.us ; racine /var/www/idroot.us ; index index.php index.html index.htm ; écouter 443 ssl http2; certificat_ssl /etc/letsencrypt/live/idroot.us/fullchain.pem ; clé_certificat_ssl /etc/letsencrypt/live/idroot.us/privkey.pem ; ## Éléments requis par l'emplacement du certbot ~ /.well-known { allow all; } ## SSL ssl_session_cache partagé : SSL :20 m ; ssl_session_timeout 10m ; ssl_prefer_server_ciphers activé ; protocoles_ssl TLSv1 TLSv1.1 TLSv1.2 ; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5 :!DSS; ssl_stapling activé ; ssl_stapling_verify activé ; résolveur 8.8.8.8 8.8.4.4 valide=300s ; résolveur_timeout 10s ; access_log /var/www/idroot.us/logs/access.log ; error_log /var/www/idroot.us/logs/error.log; # emplacement du gestionnaire de script php ~ \.php$ { fastcgi_index index.php ; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 150 ; racine /var/www/idroid.us/public_html ; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us$fastcgi_script_name ; inclure /etc/nginx/fastcgi_params ; } emplacement ~ /\.ht { tout refuser ; } }Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 5. Configurez le renouvellement automatique SSL de Let's Encrypt.
Nous ajouterons un cronjob pour exécuter la commande de renouvellement chaque semaine, exécutez cette commande :
export VISUAL=nano ; crontab -eCollez les lignes suivantes :
01 1 * * 0 /usr/bin/certbot renouveler>> /var/log/ssl-renew.log 06 1 * * 0 /usr/bin/systemctl nginx rechargerEnregistrer et quitter la table crontab.
Cela créera une nouvelle tâche cron qui sera exécutée tous les dimanches à 01h00, puis rechargera le serveur Web Nginx pour appliquer les modifications. La sortie sera connecté à
/var/log/ssl-renew.log
fichier pour une analyse plus approfondie si nécessaire.Félicitations ! Vous avez installé Let's Encrypt avec succès. Merci d'avoir utilisé ce tutoriel pour installer Let's Encrypt SSL sur le système Ubuntu 16.04 LTS. Pour une aide supplémentaire ou des informations utiles, nous vous recommandons de consulter le site officiel Let's Encrypt site Web.