Введение
Для настройки безопасности Nginx воспользуемся центром сертификации (ЦС) для установки бесплатных сертификатов TLS/SSL, тем самым предоставим шифрование для HTTPS на web-серверах.
В этой инструкции будут рассмотрены возможности использования Certbot, чтобы получить бесплатный SSL-сертификат для web-сервера Nginx на Debian 10 и рассмотрим настройку автоматического обновления сертификатов.
Подготовка к работе
Следует выполнить несколько шагов перед тем, как приступать к основной задаче:
- Запустить сервер на Debian или Ubuntu и настроить согласно нашему руководству по настройке. Настроить права для нового пользователя и настроить брандмауэр.
- Зарегистрировать доменное имя. В данной инструкции будем рассматривать доменное имя serverspace.tm.
- Установить и настроить Nginx в согласно инструкции.
Установка Certbot
Согласно документации Certbot рекомендуется устанавливать пакет через snap. Необходимо удостовериться, что ядро snapd установлен и обновлен.
snap install core && snap update core
Установим пакет certbot используя snap:
snap install --classic certbot
После установки создадим символическую ссылку для выполнения certbot из директории /usr/bin/:
ln -s /snap/bin/certbot /usr/bin/certbot
После успешной установки certbot можно приступить к настройке конфигурации Nginx.
Конфигурация Nginx
Certbot производит поиск строки server_name в конфигурационных файлах Nginx и настраивает автоматически SSL:
cp /etc/nginx/sites-avaliable/default /etc/nginx/sites-avaliable/serverspace.tm
vim /etc/nginx/sites-avaliable/serverspace.tm
...
server_name serverspace.tm www.serverspace.tm
...
И выполним выход сохранением с помощью:
:wq!
Проверьте состояние конфигурации после изменение файлов с помощью:
nginx -t
Если при тестировании конфигурации получите следующее сообщение об ошибке:
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
То закомментируйте строку listen [::]:80; в файле /etc/nginx/sites/avaliable/.
Убедившись в правильности написанного кода наших конфигурационных файлов, перезапустим nginx:
service nginx restart
Разрешение HTTPS через ufw
Ufw брандмауэр должен быть настроен согласно с инструкцией и разрешим полный доступ для подключения к Nginx:
ufw allow 'Nginx Full'
Удалим старое разрешение к Nginx HTTP:
ufw delete allow 'Nginx HTTP'
Проверим статус брандмауэра с помощью:
ufw status
Далее запустим certbot и приступим к получению сертификата
SSL-сертификаты
Выполним следующую команду для получения сертификата для нашего домен:
certbot --nginx -d serverspace.tm -d www.serverspace.tm
В процессе необходимо будет ввести адрес электронной почты и получим результаты путь до сертификатов и срок сертификатов.
После всех настроек, полученных сертификатов, наши web-запросы будут перенаправляться на https:// в автоматическом порядке.
Автообновление Certbot
Протестируем процесс обновления с помощью запуска certbot:
certbot renew --dry-run
Если команда запустилась успешно, значит certbot работает без ошибок.
При сбое автоматического обновления получим сообщение в ранее указанный адрес электронной почты при настройке сертификатов.
Выводы
В данной инструкции рассмотрели:
- Настройку конфигурации домена для Nginx;
- Установку certbot из пакетного менеджера snap;
- Установку сертификатов;
- Запуск обновления certbot.