Найти в Дзене
Beget

Получение SSL-сертификата от Let's Encrypt на VPS

Оглавление

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

SSL-сертификат (TLS-сертификат) – это специальный цифровой документ, который связывает между собой криптографический ключ и информацию о сайте, для которого он был выпущен. Наличие SSL-сертификата, выпущенного доверенным центром сертификации, является обязательным условием для установления безопасного соединения между сервером и клиентами по протоколу HTTPS.

SSL-сертификат обеспечивает защиту личной информации, позволяет шифровать данные, передаваемые между браузером и сервером, гарантируя сохранность персональной информации пользователей.

Существует несколько разновидностей SSL-сертификатов, различающихся степенью глубины проверки данных о владельце сайта. Из-за того, что такие SSL-сертификаты являлись платными, их достаточно редко использовали для небольших сайтов, домашних страниц, личных блогов и т.п. В результате, большая часть сайтов в интернете не использовала защищенные протоколы для связи с клиентами.

К счастью, на текущий момент, благодаря Let’s Encrypt, у владельцев сайтов появилась возможность совершенно бесплатно и автоматически выпускать SSL-сертификат для своего сайта и перейти на использование защищенного протокола HTTPS.

Let's Encrypt – это некоммерческий центр сертификации, предоставляющий сертификаты для 260 миллионов сайтов. Let’s Encrypt занимается выпуском сертификатов, поддерживаемых современными браузерами (полный их список доступен на официальном форуме поддержки Let’s Encrypt). Подробную информацию о совместимости сертификатов можно найти здесь.

Мы считаем, что каждый сайт должен работать через SSL, поэтому сделали установку сертификатов простой и быстрой. Наши пользователи могут защитить свои домены с помощью бесплатного SSL-сертификата, который зашифрован 256-битным симметричным ключом, автоматически устанавливается и обновляется. На VPS сертификат устанавливается вручную либо через сторонние панели. Подробные инструкции по установке представлены ниже.

Стандартный сертификат защищает домен и до 39 поддоменов, а Wildcard используется для сайтов с большим или динамическим числом поддоменов. Сертификаты Let’s Encrypt можно устанавливать на домены в зоне .РФ или кириллические домены в любой другой зоне. Среди ключевых достоинств сертификатов от Let’s Encrypt – легкость получения и надежность (сертификат бесплатный, однако степень шифрования не уступает платным аналогам).

В Let’s Encrypt можно получить бесплатный SSL‑сертификат сроком действия в 90 дней. Для получения такого сертификата необходимо подтвердить факт владения доменом с использованием протокола аутентификации ACME (Automated Certificate Management Environment), согласно которому к веб-серверу, запросившему выпуск сертификата, производится серия запросов для валидации домена. После выполнения этой процедуры владельцу домена выдается SSL-сертификат, который следует установить и настроить на своем сервере.

Мы подготовили простые инструкции, которые позволят вам выпустить бесплатный SSL-сертификат и настроить его автоматическое обновление для веб-серверов Nginx, Apache и панели управления VestaCP, в зависимости от того, что вы используете на своем виртуальном сервере.

Выпуск и настройка сертификата для панели управления VestaCP

VestaCP – это панель управления с открытым исходным кодом, которая может использоваться для управления сайтами, учетными записями электронной почты, FTP и т. д. Интерфейс VestaCP позволяет добавлять новые сайты и домены, прямо из панели работать с почтой, создавать резервные копии и добавлять SSL‑сертификаты.

Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка SSL сертификата на VPS для панели управления Hestia

Смотреть видеоинструкцию

Поддержка Let's Encrypt доступна в VestaCP из коробки.

Обратите внимание!

Перед выпуском SSL-сертификата LE убедитесь, что у добавляемого домена и поддомена www установлена корректная A-запись. A-запись должна указывать на IP-адрес текущего VPS-сервера. Изменить A-запись можно в разделе DNS вашей панели управления.

Для выпуска и установки сертификата вы можете отметить дополнительные опции сразу при добавлении домена в разделе WEB панели VestaCP:

Или отредактировать настройки домена в разделе WEB, выбрав опции поддержки SSL уже после добавления:

-2
-3
-4

Выпуск и автоматическая установка сертификата занимают до 5 минут. После этого данные SSL-сертификата будут доступны также в настройках домена.

-5

Помимо этого, при установке добавляется cron-задание для автоматического обновления сертификатов, истекающих через 30 и менее дней. Проверить это можно в разделе CRON панели VestaCP:

-6

Решение возможных проблем

Error: Let's Encrypt validation status 400

  • Убедитесь, что ваше доменное имя было введено правильно.
  • При использовании АААА записей убедитесь, что в DNS присутствуют также записи типа А.
  • Убедитесь, что записи DNS типа A для этого домена и www-поддомена содержат правильный IP-адрес (адрес текущего VPS сервера).
  • Убедитесь, что в конфигурационном файле NGINX отсутствует 301-й редирект на HTTPS (для выпуска или перевыпуска сертификата домен должен быть доступен по HTTP).

Error: LetsEncrypt challenge request 429

  • Попробуйте удалить домен из панели VestaCP и добавить его снова, после чего повторить попытку выпуска сертификата.
  • Повторите попытку выпуска сертификата через 1 час.

Выпуск и установка сертификата для панели ISP Manager

Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка SSL сертификата на VPS для панели управления ISPmanager

Смотреть видеоинструкцию

Выпуск и настройка сертификата для веб-серверов Apache и Nginx

В случае использования веб-сервера без панели управления выпуск, дальнейшее обновление сертификата и настройку веб-сервера удобно будет выполнять при помощи Certbot.

Certbot — это клиент протокола ACME, который устанавливается на конечном сервере и используется для запроса сертификата, валидации домена, установки сертификата и дальнейшего автоматического продления сертификатов от Let’s Encrypt. Для получения сертификатов у Certbot есть несколько плагинов, которые делятся на два типа — аутентификаторы и установщики.

Аутентификатор используется только для получения сертификатов — он проверяет, что вы имеете доступ к домену, для которого запрашиваете сертификат, получает сертификат для указанного домена и помещает файлы сертификата в каталог /etc/letsencrypt/ на вашем сервере. Аутентификатор не устанавливает сертификат и не редактирует конфигурацию вашего веб-сервера для настройки сертификата.

Установщик — это плагин, который помимо получения сертификатов устанавливает его путем изменения конфигурации вашего веб-сервера. На сегодняшний день установка сертификатов полностью автоматизирована и для Apache, и для Nginx.

Для веб-сервера Apache

Apache – это выпущенное в 1995 году свободное ПО для размещения и поддержки веб-сервера.

Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка SSL сертификата на VPS для веб-сервера Apache

Смотреть видеоинструкцию

Установка Certbot на Ubuntu 16.04 и выше с веб-сервером Apache:

$ sudo apt-get install snapd
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

CentOS 8 и выше с веб-сервером Apache:

$ sudo dnf install epel-release
$ sudo dnf upgrade
$ sudo dnf install snapd
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Debian 9 с веб-сервером Apache:

$ sudo apt-get install snapd
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Инструкция по установке Certbot на другие дистрибутивы доступна на официальном сайте Certbot.

После установки Certbot можно приступать к выпуску сертификата. Самый простой и быстрый способ — использовать плагин Apache для выпуска и автоматической установки сертификата:

$ sudo certbot --apache

Плагин получает сертификат для домена (доменов) и автоматически устанавливает его, конфигурируя соответствующим образом Apache.

Для установки Certbot должен иметь возможность найти корректный виртуальный хост в вашей конфигурации Apache. Для этого он будет искать директиву ServerName, соответствующую доменному имени, для которого вы запросите сертификат. Поэтому предварительно убедитесь, что конфигурация веб-сервера настроена верно.

Если вы запускаете Certbot впервые, вам будет предложено указать email для регистрации в Let’s Encrypt и получения важных уведомлений, а также ознакомиться с условиями использования и принять их.

После окончания установки сертификата Certbot предоставит вам дополнительную информацию, а также ссылку для проверки установленного сертификата:

Congratulations! You have successfully enabled https://wolfersen.ru
You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=wolfersen.ru

Обновление сертификатов

Сразу при установке Certbot добавляет cron-задание для автоматического обновления полученных им сертификатов. Задание будет запускаться дважды в день и обновлять те сертификаты, срок действия которых истекает через 30 дней и менее. Чтобы убедиться в этом, откройте файл /etc/cron.d/certbot и проверьте наличие задания, если задания нет, проверьте список системных таймеров командой systemctl list-timers.

Протестировать автоматическое обновление сертификатов вы можете, выполнив команду:

$ sudo certbot renew --dry-run

Для веб-сервера Nginx

Nginx – это ПО с открытым исходным кодом, которое работает под управлением ОС семейства Linux/Unix и Microsoft. Nginx выпущен в 2004 году, он позиционируется как простой и быстрый веб-сервер.

Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка SSL сертификата на VPS для веб-сервера Nginx

Смотреть видеоинструкцию

Обратите внимание!

В случае, если используется связка Nginx+Apache, сертификат следует выпускать именно по инструкции ниже!

Установка Certbot на Ubuntu 16.04 и выше с веб-сервером Nginx:

$ sudo apt-get install snapd
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

CentOS 7 с веб-сервером Nginx:

$ sudo yum install dnf
$ sudo dnf install epel-release
$ sudo dnf upgrade
$ sudo dnf install snapd
$ sudo systemctl enable --now snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo systemctl start snapd
$ sudo snap install core
$ sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Debian 9 с веб-сервером Nginx:

$ sudo apt-get install snapd
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Инструкция по установке Certbot на другие дистрибутивы доступна на официальном сайте Certbot.

После установки Certbot можно приступать к выпуску сертификата. Самый простой и быстрый способ — использовать плагин Nginx для выпуска и автоматической установки сертификата

$ sudo certbot --nginx

Плагин получает сертификат для домена (доменов) и автоматически устанавливает его, конфигурируя соответствующим образом Nginx.

Для установки Certbot должен иметь возможность найти корректный блок server в вашей конфигурации. Для этого он будет искать директиву server_name, соответствующую доменному имени, для которого вы запрашиваете сертификат. Поэтому предварительно убедитесь, что конфигурация веб-сервера настроена верно.

Если вы запускаете Certbot впервые, вам будет предложено указать email для регистрации в Let’s Encrypt и получения важных уведомлений, а также ознакомиться с условиями использования и принять их.

После окончания установки сертификата Certbot предоставит вам дополнительную информацию, а также ссылку для проверки установленного сертификата:

Congratulations! You have successfully enabled https://wolfersen.ru
You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=wolfersen.ru

Обновление сертификатов

Сразу при установке Certbot добавляет cron-задание для автоматического обновления полученных им сертификатов. Задание будет запускаться дважды в день и обновлять те сертификаты, срок действия которых истекает через 30 дней и менее. Чтобы убедиться в этом, откройте файл /etc/cron.d/certbot и проверьте наличие задания.

Протестировать автоматическое обновление сертификатов вы можете, выполнив команду:

$ sudo certbot renew --dry-run

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Бегета – ждем вас в нашем сообществе в Telegram.