В этой записи блога будет показано, как включить HTTPS в Debian 13. HTTPS — это сокращение от Hypertext Transfer Protocol Secure, и это протокол, который использует шифрование для безопасной связи по сети. Протокол HTTPS шифрует передаваемые данные с помощью протокола SSL (Secure Socket Layer). Поэтому для включения протокола HTTPS нам нужно установить сертификат SSL на доменное имя, чтобы к веб-сайту можно было безопасно получить доступ через HTTPS. Для включения HTTPS и установки сертификата SSL требуется настроенный веб-сервер (Apache, Nginx или OpenLiteSpeed).
В этой статье мы рассмотрим установку веб-сервера Nginx, настройку виртуального хоста и установку бесплатного SSL-сертификата Let’s Encrypt для выполнения требований по включению протокола HTTPS. Давайте начнем!
Предпосылки
- Сервер под управлением ОС Debian 13
- Привилегии пользователя: пользователь root или не-root с привилегиями sudo
- Действительное доменное имя, указывающее на IP-адрес сервера.
Шаг 1. Обновите систему
Перед установкой Nginx и Let’s 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-сертификат Let’s 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, нам нужно установить Let’s Encrypt. Пожалуйста, перейдите к следующему шагу, чтобы узнать, как установить Let’s Encrypt.
Шаг 4. Установите бесплатный SSL-сертификат Let’s 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 и бесплатным Let’s Encrypt на Debian 13.
Если вам понравилась эта статья о том, как включить HTTPS в Debian 13, поделитесь ею с друзьями или оставьте комментарий ниже.