Как включить протокол HTTPS в Debian 13

HTTPS – это сокращение от Hypertext Transfer Protocol Secure и это протокол, который использует шифрование для безопасной связи по сети. Протокол HTTPS шифрует передаваемые данные с помощью протокола SSL (Secure Socket Layer). Чтобы включить протокол HTTPS, нам нужно установить SSL-сертификат на доменное имя, чтобы обеспечить безопасный доступ к сайту по протоколу HTTPS. Для включения HTTPS и установки SSL-сертификата требуется настроенный веб-сервер (Apache, Nginx или OpenLiteSpeed).

В этом руководстве мы рассмотрим установку веб-сервера Nginx, настройку виртуального хоста и установку бесплатного SSL-сертификата Lets Encrypt для выполнения требований по включению протокола HTTPS. Начнем!

Необходимые условия

  • Сервер под управлением ОС Debian 13
  • Привилегии пользователя: root или не root пользователь с привилегиями sudo
  • Действительное доменное имя, указывающее на IP-адрес сервера

Шаг 1. Обновление системы

Перед установкой Nginx и Lets Encrypt нам необходимо обновить пакеты до последних версий. Для этого выполните следующую команду:

sudo apt update -y && sudo apt upgrade -y

Шаг 2. Установите веб-сервер Nginx

В этом руководстве мы выберем Nginx в качестве веб-сервера. Включение протокола HTTPS и установка SSL-сертификатов также могут быть выполнены на веб-серверах Apache и OpenLiteSpeed. Пользователь сам решает, какой веб-сервер ему использовать. Приступим к установке Nginx.

Чтобы установить веб-сервер Nginx, выполните следующую команду:

sudo apt install nginx -y

После установки веб-сервера нам нужно запустить и включить службу nginx:

sudo systemctl start nginx && sudo systemctl enable nginx

Чтобы проверить статус службы, выполните следующую команду:

sudo systemctl status nginx

Если все в порядке, вы должны получить следующее сообщение:

root@host:~# sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-05-06 14:48:13 CDT; 1min 49s ago
 Invocation: 78d2c4b786c141d0bb551598bf48d3da
       Docs: man:nginx(8)
   Main PID: 68366 (nginx)
      Tasks: 4 (limit: 4644)
     Memory: 3.8M (peak: 9.1M)
        CPU: 114ms
     CGroup: /system.slice/nginx.service
             ├─68366 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ├─68368 "nginx: worker process"
             ├─68369 "nginx: worker process"
             └─68370 "nginx: worker process"
May 06 14:48:13 host.test.vps systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
May 06 14:48:13 host.test.vps systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.

Шаг 3. Создание файла виртуального хоста Nginx

Далее нам нужно создать конфигурационный файл Nginx, в котором мы должны определить домен и корень документа простого HTML-сайта, достаточно, чтобы позже показать вам, как установить бесплатный SSL-сертификат Lets Encrypt.

Сначала мы создадим корневой каталог документа и разместим в нем простой HTML-файл index.html. Последовательно выполните следующие команды:

sudo mkdir -p /var/www/html/example
sudo touch /var/www/html/example/index.html
echo 'Hello World' > /var/www/html/example/index.html

Далее нам необходимо создать конфигурацию Nginx. Для этого выполните следующую команду:

sudo touch /etc/nginx/conf.d/example.conf

Откройте файл в вашем любимом текстовом редакторе и вставьте следующие строки кода:

server {
listen 80;
   server_name example.com;
   root /var/www/html/example;
   index index.html;
   server_tokens off;
   access_log /var/log/nginx/example_access.log;
   error_log /var/log/nginx/example_error.log;
   client_max_body_size 64M;
location / {
        try_files $uri $uri/ =404;
    }
}

Сохраните файл, закройте его и проверьте синтаксис Nginx:

nginx -t

Вы должны получить следующий результат:

root@host:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@host:~# service nginx restart

Можно приступать к перезапуску Nginx:

sudo systemctl restart nginx

С такой конфигурацией вы можете получить небезопасный доступ к вашему сайту только по протоколу HTTP по адресу http://example.com. Чтобы включить протокол HTTPS, нам нужно установить Lets Encrypt. Перейдите к следующему шагу, чтобы узнать, как установить Lets Encrypt.

Шаг 4. Установите бесплатный SSL-сертификат Lets Encrypt

Сначала нам нужно установить плагин Certbot для Nginx:

sudo apt install certbot python3-certbot-nginx

После установки нам нужно получить SSL-сертификат с помощью следующей команды:

sudo certbot --nginx -d example.com -d

Вы должны ввести свой адрес электронной почты для продления, а также некоторую дополнительную информацию, как описано ниже. После успешной установки вы получите пути к SSL-сертификатам.

root@host:~# sudo certbot --nginx -d example.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): admin@example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Yes
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: No
Account registered.
Requesting a certificate for example.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/example.com/privkey.pem
This certificate expires on 2025-08-04.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for  to /etc/nginx/conf.d/example.conf
Congratulations! You have successfully enabled HTTPS on https://example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Созданный нами файл Nginx автоматически настроен на перенаправление трафика на HTTPS при наличии действительного SSL-сертификата.

Вот и всё. Вы включили протокол HTTPS с помощью Nginx и бесплатного Lets Encrypt в Debian 13.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)