Comment configurer Nginx pour HTTPS

Comment configurer HTTPS sur votre serveur Web à l'aide de Let's Encrypt

J'ai récemment mis en place un VPS sur DigitalOcean à l'aide du droplet officiel Node.js, qui installe Ubuntu Linux avec Node et Nginx en tant que proxy inverse, ce qui signifie qu'il s'agit d'un intermédiaire entre les utilisateurs et vos applications Node.js.

Par défaut, le droplet est configuré pour utiliser HTTP, mais nous voulons que nos applications soient servies à l'aide de HTTPS, la version sécurisée de HTTP.

Nous devons donc faire une petite procédure qui consiste à utiliserCertbotpour obtenir un certificat SSL viaCrypteronset configurer Nginx pour l'utiliser.

Voici les étapes que nous suivrons:

Installez Certbot et le package Certbot Nginx

Ces instructions supposent que vous utilisez Ubuntu, Debian ou toute autre distribution Linux utilisantapt-getpour gérer les packages:

sudo apt-get install certbot python3-certbot-nginx

Configurer Nginx

Éditer/etc/nginx/sites-available/defaultpour définir le nom de serveur correct (essentiel pour SSL)

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

trouver la ligneserver_nameet entrez votre nom de domaine:

server_name my.domain.com;

Now run

sudo systemctl reload nginx

to reload Nginx with the updated configuration.

The firewall should already be configured to accept HTTPS, find it out typing sudo ufw status. You should see Nginx Full in the list. If you only see Nginx HTTP, look up how to change that.

Generate the SSL certificate using Certbot

Now we can invoke Certbot to generate the certificate. You must run this as root:

sudo certbot --nginx -d my.domain.com

(of course, change my.domain.com to your domain name)

Enter your real email, as that will be used to communicate you any problem.

I also suggest to choose the option to redirect HTTP to HTTPS automatically.

That’s it!

SSL certificates are valid for 90 days, and Certbot is already set up for automated renewal. To simulate and test-drive the renewal process, run:

sudo certbot renew --dry-run

This should give you a successful message.

That’s it, now your Node apps should successfully run on HTTPS with no additional changes on your part.


More network tutorials: