- Настройка защиты Nginx с использованием Let’s Encrypt
- Установка Let’s Encrypt на Ubuntu 18.04 и 20.04
- Установка Certbot
- Шаги установки Certbot
- Как установить Certbot для автоматического получения SSL-сертификатов.
- Настройка файрвола
- Необходимые настройки для корректной работы Certbot через файрвол.
- Видео:
- How to Secure Your Applications with HTTPS Using Docker, NGINX, and Let’s Encrypt
- Отзывы
Настройка защиты Nginx с использованием Let’s Encrypt
Прежде всего, необходимо убедиться, что у вас есть доступ к доменному имени и серверу, где настроен Nginx. Важно, чтобы ваш сервер мог принимать запросы от Let’s Encrypt для подтверждения владения доменом через http-01 метод.
Для установки Certbot, используемого для выпуска SSL-сертификатов, воспользуемся утилитой snap. Введите следующую команду:
sudo snap install --classic certbot Затем создаем символическую ссылку для удобного вызова Certbot:
sudo ln -s /snap/bin/certbot /usr/bin/certbot После установки, запускаем процесс выпуска сертификата для вашего доменного имени. Это можно сделать non-interactively, используя команду:
sudo certbot --nginx -d ваш_домен --quiet В ходе этого процесса Certbot добавит необходимые директивы в конфигурационные файлы вашего серверного блока Nginx, включая путь к новому сертификату и ключу. Пример фрагмента конфигурационного файла может выглядеть следующим образом:
server {
listen 80;
server_name ваш_домен;
...
location /.well-known/acme-challenge/ {
root /var/www/html;
}
}
После успешного выпуска сертификата, Certbot автоматически обновит конфигурацию Nginx и перезапустит сервер для применения изменений:
sudo systemctl reload nginx Чтобы убедиться, что ваши SSL-сертификаты будут обновляться автоматически до истечения их срока действия, используется таймер snap.certbot.renew.timer, который настроен на автоматическое обновление сертификатов. Проверить статус таймера можно командой:
sudo systemctl status snap.certbot.renew.timer Сертификаты Let’s Encrypt действуют 90 дней, и автоматическое обновление настроено так, чтобы начать процесс за 30 дней до окончания срока действия. Таким образом, вы всегда можете быть уверены, что ваши сертификаты актуальны и защищают ваш сайт.
Если необходимо протестировать процесс обновления сертификата, используйте тестовый режим:
sudo certbot renew --dry-run Эта команда поможет убедиться в том, что все работает корректно без фактического обновления сертификатов.
Таким образом, настройка автоматической защиты вашего сайта с помощью SSL-сертификатов Let’s Encrypt позволяет вам сосредоточиться на развитии вашего проекта, не беспокоясь о безопасности передаваемых данных.
Установка Let’s Encrypt на Ubuntu 18.04 и 20.04

Для начала нам потребуется установить certbot, утилиту для выпуска и обновления ssl-сертификатов от Let’s Encrypt. Сначала добавляем необходимые зависимости и устанавливаем snapd:
sudo apt update
sudo apt install snapd
После установки snapd обновляем его до последней версии:
sudo snap install core
sudo snap refresh core
Теперь устанавливаем certbot с помощью snap:
sudo snap install --classic certbot
Чтобы certbot мог использоваться как команда, создаем символическую ссылку:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Теперь мы готовы к выпуску ssl-сертификатов. Для этого используем следующую команду, заменив example.com на ваш домен:
sudo certbot certonly --standalone --preferred-challenges http -d example.com
В процессе вы получите запрос на ввод email для получения уведомлений о выпуске и обновлении сертификатов, а также подтверждение условий обслуживания. После успешного выполнения команда создаст сертификаты в указанной директории.
Для автоматического обновления ssl-сертификатов создаем cron задачу. Откроем crontab редактор:
sudo crontab -e
Добавим следующую строку для автоматического обновления сертификатов:
0 0 * * * /usr/bin/certbot renew --quiet
Эта команда будет запускаться ежедневно в полночь и автоматически обновлять сертификаты при необходимости.
sudo certbot renew --dry-run
Если все настроено корректно, вы увидите сообщение о успешной проверке.
Теперь ваш сайт защищен с помощью ssl-сертификатов, которые будут обновляться автоматически, что гарантирует безопасность вашего соединения и данных пользователей.
| Команда | Описание |
|---|---|
sudo apt update | Обновление списка пакетов |
sudo apt install snapd | Установка snapd для управления пакетами |
sudo snap install --classic certbot | Установка certbot с использованием snap |
sudo certbot certonly --standalone -d example.com | Выпуск ssl-сертификата для домена |
sudo crontab -e | Редактирование crontab для автоматизации задач |
0 0 * * * /usr/bin/certbot renew --quiet | Автоматическое обновление сертификатов каждую ночь |
Установка Certbot
Для начала установки Certbot, следуйте приведенным ниже шагам. В данном руководстве будет описан процесс установки, настройки и проверки работоспособности Certbot для обеспечения вашего сайта SSL-сертификатом.
Шаги установки Certbot

-
Добавление репозитория:
Сначала необходимо добавить репозиторий, содержащий последнюю версию Certbot. Откройте терминал и выполните следующую команду:
sudo add-apt-repository ppa:certbot/certbotПосле этого обновите список пакетов:
sudo apt-get update -
Установка Certbot:
Теперь можно установить сам Certbot, а также необходимый плагин для работы с Nginx:
sudo apt-get install certbot python3-certbot-nginxЕсли вы используете Apache, выполните следующую команду вместо предыдущей:
sudo apt-get install certbot python3-certbot-apache -
Запуск Certbot:
Для выпуска SSL-сертификата выполните команду:
sudo certbot --nginxЕсли вы используете Apache:
sudo certbot --apacheСледуйте инструкциям на экране, чтобы завершить процесс. В процессе установки Certbot добавит необходимые записи в конфигурационные файлы вашего веб-сервера и выполнит проверку доменного имени.
-
Проверка и тестирование:
После установки убедитесь, что ваш сайт успешно работает с новым сертификатом. Откройте браузер и введите адрес вашего сайта с использованием https. Вы должны увидеть значок безопасности, указывающий на успешное шифрование трафика.
Также можно проверить статус сертификата с помощью команды:
sudo certbot certificates -
Настройка автоматического обновления:
Для автоматического обновления сертификатов добавьте команду проверки в crontab. Откройте crontab:
sudo crontab -eДобавьте следующую строку:
0 0,12 * * * /usr/bin/certbot renew --quietЭта строка настроит автоматическую проверку и обновление сертификатов дважды в день.
После выполнения всех этих шагов, ваш сайт будет защищен SSL-сертификатом, который будет автоматически обновляться при необходимости. Вы можете везде использовать Certbot для управления сертификатами без каких-либо сложностей и быть уверенным в безопасности трафика вашего сайта.
Как установить Certbot для автоматического получения SSL-сертификатов.

Для начала необходимо убедиться, что ваш сервер оснащен последними обновлениями. Это позволит избежать возможных проблем при установке и использовании Certbot. Затем выполните следующие команды, чтобы установить Certbot:
Шаг 1: Установка Certbot
Используйте snap для установки последней версии Certbot:
sudo snap install --classic certbot После завершения установки необходимо создать символическую ссылку, чтобы иметь возможность запускать certbot с использованием команды:
sudo ln -s /snap/bin/certbot /usr/bin/certbot Шаг 2: Получение SSL-сертификата
Теперь, когда Certbot установлен, можно приступить к получению SSL-сертификатов. Выполните следующую команду, чтобы non-interactively получить сертификат для вашего сайта:
sudo certbot certonly --standalone -d example.com -d www.example.com Эта команда создаст необходимые файлы сертификатов в каталоге /etc/letsencrypt/live/example.com/, включая privkey.pem и fullchain.pem, которые понадобятся для настройки SSL.
Шаг 3: Настройка автоматического обновления
Certbot может автоматически обновлять SSL-сертификаты перед их истечением. Для этого используется certbot.timer, который автоматически запускается при установке Certbot с помощью snap. Убедитесь, что таймер активен, выполнив команду:
sudo systemctl status snap.certbot.renew.timer Если таймер не активен, запустите его командой:
sudo systemctl start snap.certbot.renew.timer Теперь Certbot будет non-interactively обновлять SSL-сертификаты и перезагружать конфигурацию сервера, если это необходимо.
Шаг 4: Проверка установки и настроек
После установки и настройки Certbot важно убедиться, что все работает корректно. Используйте следующую команду для симуляции обновления сертификатов и проверки конфигурации:
sudo certbot renew --dry-run Эта команда поможет убедиться, что процесс обновления SSL-сертификатов работает без ошибок.
На этом этапе установка Certbot завершена. Теперь ваш сайт будет работать с актуальными SSL-сертификатами, обеспечивая безопасность пользователей. Certbot автоматизирует процесс получения и обновления сертификатов, что позволяет сэкономить время и силы на поддержке безопасного соединения.
Настройка файрвола

Для обеспечения безопасности сервера важно правильно настроить файрвол, который будет контролировать входящий и исходящий трафик. Этот процесс включает в себя настройку правил, которые определяют, какой трафик разрешен, а какой блокируется, что повышает уровень защиты вашего сервера и данных.
На этом шаге мы используем ufw (Uncomplicated Firewall) — утилиту для управления iptables, которая позволяет легко конфигурировать файрвол. Ufw поддерживает работу как с IPv4, так и с IPv6, и позволяет создавать правила, которые можно обновлять и изменять по мере необходимости.
Перед установкой и настройкой файрвола необходимо убедиться, что он установлен в системе. Для этого выполните следующие команды:
sudo apt update
sudo apt install ufw
После установки ufw можно начинать настройку. Сначала нужно включить файрвол:
sudo ufw enable
Теперь, чтобы ваш сервер мог работать с ssl-сертификатами и обрабатывать трафик, необходимо добавить правила, разрешающие нужные порты. Для веб-сервера это обычно порты 80 (HTTP) и 443 (HTTPS):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Если на вашем сайте используются виртуальные хосты или другие сервисы, не забудьте добавить и их порты. Например, для SSH, используемого для удаленного доступа к серверу, выполните:
sudo ufw allow 22/tcp
Для тестового сервера или в случае разработки также можно добавить другие необходимые порты. Например, если требуется открыть порт для MySQL:
sudo ufw allow 3306/tcp
Для применения изменений и перезагрузки ufw выполните:
sudo ufw reload
Состояние файрвола можно проверить командой:
sudo ufw status
Если файрвол настроен правильно, вы увидите список активных правил, например:
Status: active
To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
3306/tcp ALLOW Anywhere
Этот фрагмент кода показывает, что порты 80, 443, 22 и 3306 открыты для входящего трафика. Ufw автоматически применит эти правила к любым новым подключаемым интерфейсам.
Таким образом, установка и настройка файрвола завершаются, и ваш сервер будет защищен от нежелательного трафика, что повышает его безопасность и стабильность. Не забывайте периодически проверять и обновлять правила файрвола по мере изменения конфигурации сервера или добавления новых сервисов.
Необходимые настройки для корректной работы Certbot через файрвол.

На первом этапе важно убедиться, что файрвол позволяет трафик по портам 80 и 443. Порт 80 используется для HTTP-запросов, а порт 443 – для HTTPS. Certbot должен иметь возможность отправлять и получать запросы через эти порты для успешной сертификации домена. В большинстве случаев это можно настроить с помощью команд ufw или iptables, в зависимости от используемого вами файрвола.
Для пользователей ufw настройка будет выглядеть следующим образом:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload Если используется iptables, добавьте следующие правила:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4 После настройки правил файрвола можно переходить к установке Certbot. Для этого следует использовать команду:
sudo snap install --classic certbot По завершении установки необходимо выполнить настройку Certbot для автоматического обновления сертификатов. Это обеспечит бесперебойную работу сайта и своевременное обновление сертификатов без вмешательства пользователя. Команда для автоматической настройки обновлений:
sudo systemctl enable --now snap.certbot.renew.timer Certbot будет регулярно проверять и обновлять сертификаты, поддерживая их актуальность. Дополнительно рекомендуется проверять конфигурационные файлы, такие как etc/letsencrypt/live/example.com/privkey.pem, чтобы убедиться, что они правильно настроены для взаимодействия с вашим веб-сервером, например, с nginx или apache2.
В завершение, чтобы удостовериться, что Certbot корректно работает с файрволом, можно использовать тестовый режим, который позволит проверить все настройки без внесения изменений в реальные данные:
sudo certbot certonly --dry-run Эта команда поможет удостовериться, что Certbot сможет получить и обновлять сертификаты без ошибок. Если все шаги выполнены правильно, вы получите сообщение об успешном прохождении теста, что гарантирует готовность вашего сайта к безопасной работе с SSL-сертификатами.
Видео:
How to Secure Your Applications with HTTPS Using Docker, NGINX, and Let’s Encrypt
Отзывы








