Как настроить Nginx для HTTPS

Как настроить HTTPS на вашем веб-сервере с помощью Let's Encrypt

Недавно я настроил VPS в DigitalOcean, используя официальный дроплет Node.js, который устанавливает Ubuntu Linux с Node и Nginx в качестве обратного прокси, что означает, что это посредник между пользователями и вашими приложениями Node.js.

По умолчанию дроплет настроен на использование HTTP, но мы хотим, чтобы наши приложения обслуживались с использованием HTTPS, безопасной версии HTTP.

Итак, нам нужно выполнить небольшую процедуру, которая включает в себя использованиеCertbotполучить сертификат SSL черезДавайте зашифроватьи настроить Nginx для его использования.

Вот шаги, которые мы будем выполнять:

Установите Certbot и пакет Certbot Nginx

Эти инструкции предполагают, что вы используете Ubuntu, Debian или любой другой дистрибутив Linux, который используетapt-getдля управления пакетами:

sudo apt-get install certbot python3-certbot-nginx

Настроить Nginx

Редактировать/etc/nginx/sites-available/defaultдля установки правильного имени сервера (необходимо для SSL)

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

найди линиюserver_nameи введите свое доменное имя:

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: