Recherche de site Web

Comment configurer Let's Encrypt dans le serveur Nginx Ubuntu


Si vous avez lu de nombreux articles sur les astuces en matière de confidentialité, vous tomberez sûrement sur une astuce qui vous demande d'installer l'extension "HTTPS partout" afin qu'elle vous redirige automatiquement vers la version HTTPS du site dans la mesure du possible . Le problème est que l'extension HTTPS partout ne fonctionne que lorsque le site Web que vous visitez a implémenté SSL, et pour la plupart des webmasters, cela peut être une tâche difficile (et coûteuse) en soi. Heureusement, avec le mouvement Let's Encrypt, il est désormais plus facile pour les webmasters d'ajouter des certificats SSL à leurs sites.

Dans le passé (et actuellement), la configuration d'un certificat SSL nécessitait d'abord de générer une clé privée sur votre serveur, puis d'acheter un certificat SSL auprès de l'autorité de certification (ce qui peut coûter cher), et enfin de le configurer sur le serveur. . Le processus implique beaucoup de détails techniques, et ne pas le faire correctement rendra le certificat SSL inutile. Avec le projet Let's Encrypt, on peut ajouter rapidement un certificat SSL à ses sites sans aucun frais. Et étant soutenu par de grands acteurs de l'industrie comme Mozilla, Akamai, Cisco, EFFSi vous et Google, il est pris en charge par la plupart des navigateurs et systèmes d'exploitation.

Dans ce tutoriel, nous passerons en revue les étapes pour configurer le certificat SSL Let's Encrypt sur le serveur Nginx. Nous utilisons un serveur Ubuntu 14.04 pour ce didacticiel et supposons que vous utilisez un serveur Nginx Ubuntu fonctionnel. Les instructions peuvent différer pour le serveur Ubuntu 16.04.

Installer Let's Encrypt

Tout d'abord, pour installer Let's Encrypt, vous aurez besoin de git pour le cloner depuis son référentiel git. Installez git avec la commande suivante :

sudo apt-get install git bc

Une fois installé, clonez le dépôt de Let's Encrypt :

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Mise en place de l'environnement

Avant de procéder à l'installation et à la configuration du certificat SSL, il est important d'autoriser l'accès au dossier .well-known dans le répertoire racine Web. Par défaut, tous les fichiers et dossiers avec un "." devant le nom du fichier sont masqués et inaccessibles au public. Cependant, dans ce cas, nous devrons autoriser le public à accéder au dossier .well-known, car c'est là que Let's Encrypt stockera un fichier spécial pour validation.

Accédez au dossier de configuration de votre site Nginx et ouvrez-le (si vous disposez d'un fichier de configuration personnalisé pour votre site) ou utilisez la valeur par défaut :

cd /etc/nginx/sites-available
sudo nano default

Ajoutez les lignes suivantes dans le bloc serveur :

location ~ /\.well-known {
    allow all;
}

Enregistrez (Ctrl + O) et fermez (Ctrl + x) le fichier de configuration.

Testez votre configuration Nginx :

sudo nginx -t

Si toute la configuration fonctionne correctement, rechargez la configuration :

sudo service nginx reload

Générer un certificat SSL

Maintenant que vous avez terminé la configuration de Nginx, la prochaine étape consiste à installer le certificat SSL.

Accédez au dossier Let's Encrypt :

cd /opt/letsencrypt

Exécutez la commande suivante pour générer le certificat :

./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com

Il y a quelques choses à changer ici :

  • Remplacez le webroot-path par le chemin racine du document de votre site. La valeur par défaut est "/user/share/nginx/html", mais votre configuration peut différer.
  • Remplacez « exemple.com » par votre propre nom de domaine. Notez que « exemple.com » et « www.exemple.com » sont deux domaines différents. Si vous souhaitez que le certificat prenne en charge plusieurs domaines, ajoutez simplement -d example1.com à la fin de la commande. Par exemple, pour configurer un certificat SSL pour les domaines « exemple.com », « www.exemple.com », « exemple1.com » et « www.exemple1.com », utilisez la commande suivante :
./letsencrypt-auto certonly -a webroot --webroot-path=/usr/share/nginx/html -d example.com -d www.example.com -d example1.com -d www.example1.com

Lors de la première exécution, le script installera un certain nombre de fichiers Python sur votre système. Une fois cela fait, le processus de génération de certificat commencera. Il vous demandera d'abord votre adresse e-mail :

Après cela, vous serez invité à lire les conditions d'utilisation sur le site Web Let's Encrypt. Sélectionnez « Accepter ».

Si vous voyez le message suivant :

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert
   will expire on 2016-10-02. To obtain a new or tweaked version of
   this certificate in the future, simply run letsencrypt-auto again.
   To non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:
 
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Cela signifie que vous avez généré avec succès un certificat SSL pour votre (vos) site(s). Si, à la place, vous voyez un message d'erreur, corrigez l'erreur et réessayez.

Activation du certificat SSL pour votre site

Maintenant que vous avez généré le certificat SSL, il est temps de l'activer pour votre site.

Retournez dans le dossier de configuration de Nginx et ouvrez le fichier de configuration du site :

cd /etc/nginx/sites-available
sudo nano default

Créez un nouveau bloc serveur et ajoutez la configuration suivante à l'intérieur du bloc :

server {
        server_name example.com www.example.com;
 
        listen 443 ssl;
 
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

Enregistrez et fermez le fichier.

Remarque : ce qui précède est une version simplifiée du bloc de configuration Nginx. Vous devez ajouter votre propre configuration personnalisée dans le bloc.

Enfin, testez la configuration :

sudo nginx -t

Si tout va bien, rechargez Nginx :

sudo service nginx reload

C'est ça. Vous avez configuré avec succès un certificat SSL pour vos sites. Vous pouvez maintenant charger la version "https" de votre URL pour la voir en action.

Renouvellement automatique d'un certificat SSL Let's Encrypt

Contrairement à la plupart des certificats SSL commerciaux qui sont valables au minimum un an, le certificat SSL de Let's Encrypt n'est valable que trois mois. Passé ce délai, vous devrez renouveler pour continuer à l'utiliser. Let's Encrypt est livré avec une option renew afin que vous puissiez facilement renouveler vos certificats sans avoir à recommencer toute l'installation. Les instructions suivantes vous montrent comment configurer une tâche cron pour renouveler automatiquement votre certificat SSL.

Toujours sur votre serveur, ouvrez la crontab :

sudo crontab -e

Ajoutez les lignes suivantes :

00 0 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
05 0 * * 1 /etc/init.d/nginx reload

Les lignes ci-dessus vérifieront la date d'expiration de vos certificats SSL tous les lundis à minuit et les renouvelleront si elle est proche de l'expiration. Il rechargera également Nginx (à 00h05) pour garantir que le certificat renouvelé est utilisé.

Enregistrez et fermez la crontab.

Conclusion

Si vous exploitez un petit site Web et souhaitez ajouter SSL à votre site, Let's Encrypt est une excellente option pour ajouter de la crédibilité à votre site. Il est (relativement) facile à mettre en place et ne coûte rien (gratuit, comme la bière), il n'y a donc aucune raison de ne pas l'utiliser. Cependant, comme il ne fournit qu'un certificat SSL à validation de domaine (DV) (le type de certificat SSL le plus basique) pour les entreprises qui nécessitent des certificats SSL à validation d'organisation (OV) ou à validation étendue (EV), un certificat SSL commercial est probablement le chemin à parcourir.

Internet2 - HTTPS

Articles connexes