Yandex
Обновить настройки cookies

Получение SSL сертификата Let's Encrypt в Ubuntu с Certbot

Что такое SSL сертификат и зачем он нужен?

SSL сертификат — это специальный цифровой сертификат, который обеспечивает безопасное соединение между веб-сервером и браузером пользователя. Он шифрует данные, передаваемые между этими двумя точками, что защищает их от перехвата злоумышленниками. Основная цель SSL-сертификата — обеспечить конфиденциальность и целостность информации, особенно когда речь идет о передаче личных данных, таких как пароли или платежные реквизиты. Наличие SSL-сертификата на сайте не только повышает уровень безопасности, но и положительно сказывается на доверии пользователей. Современные интернет-браузеры, такие как Chrome и Firefox, помечают сайты без SSL-сертификатов как небезопасные, что может отпугнуть потенциальных клиентов. Кроме того, поисковые системы, такие как Google, отдают предпочтение сайтам с SSL, что может улучшить их позиции в результатах поиска. Таким образом, установка SSL-сертификата — это не просто вопрос безопасности, но и важный шаг к повышению репутации вашего онлайн-бизнеса. В современных условиях защиты данных и конфиденциальности клиентов это становится необходимостью для каждого владельца сайта.

Преимущества использования Let's Encrypt для получения SSL сертификата

Использование Let's Encrypt для получения SSL сертификата предлагает множество значительных преимуществ, которые делают его идеальным выбором как для владельцев небольших сайтов, так и для крупных компаний. Во-первых, Let's Encrypt предоставляет сертификаты бесплатно, что существенно снижает затраты на обеспечение безопасности вашего веб-ресурса. Во-вторых, процесс получения сертификата автоматизирован, что позволяет значительно сократить время на его установку и обновление. Это особенно важно для тех, кто не обладает техническими навыками, поскольку Let's Encrypt предлагает понятные инструкции и поддержку для различных серверов. Кроме того, автоматизация обновлений сертификата помогает избежать проблем с истечением срока действия, что может привести к потере доверия пользователей и негативным последствиям для SEO. Наконец, использование SSL-сертификата от Let's Encrypt способствует повышению уровня доверия со стороны посетителей, так как наличие HTTPS защищает данные пользователей и улучшает ранжирование сайта в поисковых системах. Таким образом, Let's Encrypt становится не только экономически выгодным, но и эффективным инструментом для создания безопасного и надежного онлайн-присутствия.

Установка Certbot на Ubuntu

Установка Certbot на Ubuntu – это ключевой шаг для обеспечения безопасного соединения вашего веб-сайта с использованием SSL/TLS сертификатов. Для начала, убедитесь, что ваша система обновлена, выполнив команды:
apt update
apt upgrade

Затем установите Certbot, используя для пользователей Nginx команду:
apt install certbot python3-certbot-nginx
А для Apache:
apt install certbot python3-certbot-apache
После успешной установки, вы можете запустить Certbot, чтобы получить и установить сертификат. Для этого выполните команду в зависимости от вашего веб-сервера:
certbot --nginxили
certbot --apache
Certbot предложит вам ввести Email и доменное имя, а аткже автоматически настроит ваш сервер для работы с полученным сертификатом. Не забудьте настроить автоматическое обновление сертификатов, добавив команду в cron:
0 0,12 * * * root certbot renew --quiet

Это гарантирует, что ваш сертификат будет обновляться без вашего вмешательства. Следуя этим шагам, вы сможете легко установить Certbot на Ubuntu и обеспечить защиту вашего сайта, повысив доверие пользователей и улучшив SEO-рейтинги.

Получение SSL сертификата с помощью Certbot для нового домена

Немного упростив задачу в получении SSL сертификата вышеизложенной командой можно если задать изначально домены, на которые будут выдаваться сертификаты. Это уменьшить количество интерактивных вопросов утилиты certbot:
certbot --nginx -d example.com -d www.example.com -n --agree-tos --email [email protected]где example.com нужно заменить на ваш домен.

Обратите внимание, при наличии конфигурации Nginx по адресу /etc/nginx/sites-enabled/example.com.conf параметры сертификата будут добавлены в него. А в случае отсутствия такого файла в дефолтный  /etc/nginx/sites-enabled/default.

Настройка автоматического обновления сертификата

Современные веб-серверы, такие как Apache и Nginx, позволяют легко интегрировать автоматизированные процессы обновления SSL/TLS сертификатов. Для этого рекомендуется использовать такие инструменты, как Certbot, который поддерживает автоматическое обновление сертификатов от Let's Encrypt. После установки Certbot вы можете настроить планировщик задач (cron), чтобы он проверял срок действия сертификата и запускал обновление за 30 дней до его истечения (сама команда указана в статье чуть выше). Это исключит риск простоя вашего сайта из-за просроченного сертификата. Важно также помнить о тестировании процесса обновления: можно использовать команду симуляции обновления SSL сертификата, чтобы убедиться, что всё работает корректно:
certbot renew --dry-run
Настройка уведомлений о состоянии сертификата поможет вам быть в курсе возможных проблем. Благодаря автоматическому обновлению сертификатов, вы не только поддерживаете высокий уровень безопасности, но и экономите время и ресурсы, что критически важно для любого бизнеса в цифровую эпоху. Таким образом, регулярное обновление сертификатов становится частью вашей стратегии по защите данных и укреплению доверия клиентов.

В современных системах cron-задание не нужно добавлять, так как имеется сервис Certbot.timer для автоматизации процесса обновления SSL-сертификатов. Его основная задача заключается в периодической проверке и обновлении сертификатов, что позволяет избежать их истечения и гарантирует безопасность вашего веб-сайта. Использование certbot.timer особенно актуально для администраторов, которые сталкиваются с распространёнными ошибками при получении сертификатов, такими как истечение срока действия или неправильная конфигурация. Задания запускаются автоматически через системный планировщик systemd. Certbot.timer будет выполнять проверку сертификатов, и если срок их действия подходит к концу, автоматически инициирует процесс обновления. Это существенно снижает нагрузку на администраторов и позволяет сосредоточиться на других важнейших задачах.

Проверить работу таймера Certbot можно командой:
systemctl status certbot.timer20250128_wyQ82BQw
В данном выводе можно видеть, что сервис будет запускать задание дважды в день, последний запуск был 13 минут назад, а до следующего осталось еще 8 часов.

Настройка брандмауэра ufw

Если вы используете брандмауэр, не забудьте открыть доступ для 443-го порта для работы сайтов по защищенному соединению. Ниже опишу как это сделать в случае использования брандмауэра ufw в Ubuntu.

Текущие настройки брандмауэра ufw можно посмотреть следующим образом:
ufw status20250128_w97CIJNi

Разрешаем трафик как HTTP, так и HTTPS. Для этого проще всего активировать профиль Nginx Full, удалив при этом Nginx HTTP:
ufw allow 'Nginx Full'
ufw delete allow 'Nginx HTTP'

И проверим повторно статус.
20250128_BF9uPm7N

На этом настройка Certbot завершена.
28 Jan 2025, 10:45:09