В нынешнее время использовать SSL-сертификат для каждого web-сайта практически обязательное условие. Без него надежность сайта будет низкая, а риск компрометации данных будет наоборот высок.
SSL сертификат гарантирует, что информация от клиента к серверу и наоборот от сервера к клиенту, будет идти по зашифрованному каналу.
Но, к сожалению, выпуск такого сертификата может стоить вам денег. Но, есть и бесплатные варианты решения данного вопроса. Один из таких способов и, наверное, один из самых известных это центр сертификации Let’s Encrypt.
Let’s Encrypt позволяет каждому получить и установить доверенный SSL сертификат на свой web-сайт, тем самым помогает установить шифрованное соединение, повышая этим самым безопасность.
В отличии от самоподписанного сертификата, сертификат от Let’s Encrypt является общепризнанным и при его использовании, вы получить значок замочка около адреса вашего web-сайта в браузере.
Как работает Let’s Encrypt.
До того как мы рассмотрим получение бесплатного сертификата, давайте познакомимся с тем как Let’s Encrypt работает.
Первым делом, перед тем, как выдать сертификат, Let’s Encrypt валидирует владельца вашего домена. Далее, клиент Let’s Encrypt на вашем хосте создает временный файл ( токен ) с необходимой информацией.
Аттестационный сервер отправляет HTTP-запрос для получение созданного файла и валидации токена, который проверяет, что DNS-запись вашего домена соответствует серверу, на котором запущен клиент Let’s Encrypt.
Следовательно, инструкции, описанные ниже, должны быть выполнены на сервере, который служит домену, для которого выдается сертификат.
Получение бесплатного сертификата от Let’s Encrypt.
Следующие шаги покажут вам, как можно быстро и просто получить бесплатный SSL сертификат для вашего web-сайта.
Шаг 1. Установка certbot.
У Let’s Encrypt имеется приложение, которое автоматически создает и устанавливает SSL сертификат на вашем сервере. Оно называется certbot. И, именно, с его установки мы начнем получение нашего сертификата. Для этого необходимо выполнить следующую команду в соответствии с ОС, которая у вас установлена:
Ubuntu:
sudo apt install certbot python3-certbot-nginx
Debian:
sudo apt install certbot
RHEL-like:
sudo dnf install epel-release
sudo dnf install certbot
Шаг 2. Получение сертификата Let’s Encrypt.
Важно! Перед получением бесплатного SSL сертификата от Let’s Encrypt, необходимо остановить сервис web-сервера. Иначе, вы получите следующую ошибку:
Problem binding to port 80: Could not bind to IPv4 or IPv6
Для этого, необходимо выполнить следующую команду:
NGINX:
sudo systemctl stop nginx
Apache:
Для Ubuntu и Debian:
sudo systemctl stop apache2
Для RHEL-like:
sudo systemctl stop httpd
Теперь мы можем приступить к генерации SSL сертификата. Для этого запустим следующую команду:
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com
Опция -d служит для определения вашего домена. Вы можете использовать несколько опций -d в одной команде, для определения нескольких адресов. Например,
sudo certbot certonly --standalone --preferred-challenges http -d my-domain.com -d www.my-domain.com
Если это ваше первое получение сертификата, то вам необходимо будет ввести E-mail и принять соглашение на условия обслуживания.

После того, как вы все выполнили, certbot свяжется с сервером Let’s Encrypt и начнется проверка кашего домена на соответствие всех необходимых условий. После непродолжительного времени, вы получите сообщение, что все прошло успешно. Либо ошибку, если что-то пошло не так.
Шаг 3. Проверка наличия сертификатов.
Проверьте наличие сертификатов в каталоге /etc/letsencrypt/live/my-domain.com/
ls -l /etc/letsencrypt/live/my-domain.com/

Изменение конфигурации web-сервера
Теперь укажите ваш новый Let’s Encrypt SSL сертификат в конфигурации сервера. Например, если вы используете сервер на основе NGINX, то вам необходимо отредактировать следующий блок в файле /etc/nginx/sites-enabled/my-domain.conf
server {
listen 443;
server_name my-domain.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain.com/privkey.pem;
}
Это все. Все настройки завершены. Теперь вам только остается запустить ваш сервер, следующей командой, в случае Nginx:
sudo systemctl start nginx
В случае Apache, на Ubuntu или Debian:
sudo systemctl start apache2
В случае Apache на RHEL-like:
sudo systemctl start httpd
И теперь, вы можете проверить, что ваш сайт защищен SSL сертификатом. Откройте его браузере и убедитесь, что рядом с адресной строкой, имеется значок замочка и надпись, что подключение защищено.

Автоматическое обновление сертификата Let’s Encrypt.
Срок действия сертификата Let’s Encrypt 90 дней. Его можно обновить за 30 дней до конца истечения его срока. Для этого можно добавить задачу в cron, которая будет обновлять его по расписанию.
Для этого откройте файл crontab следующей командой:
sudo crontab -e
И далее добавим команду, которая будет обновлять сертификат ежемесячно:
@monthly certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" --renew-hook "systemctl reload nginx" --quiet
Удаление сертификата certbot
Иногда возникает необходимость удалить уже сгенерированный сертификат. Естественно, вы можете удалить его просто, удалив их тз каталога, где они хранятся. Но таким образом некоторые метаданные все равно сохраняются в certbot индексах.
К счастью, команда certbot делает работу по удалению сертификатов очень легко. Например, выполнение приведенной ниже команды предложит индекс, из которого вы можете выбрать какое доменное имя необходимо удалить.
sudo certbot delete
Введите номер индекса сертификата для доменного имени, которое вы хотите удалить, и нажмите «Enter». После этого Certbot удалит выданный до этого сертификат.
Вы также можете удалить сертификат, используя приведенную ниже команду, указав явно имя домена, для которого следует удалить сертификат.
sudo certbot delete --cert-name my-domain.com
Заключение
В этой статье описал, как установить бесплатный сертификат SSL от Let’s Encrypt, чтобы сделать web-сайт безопаснее. Для получения дополнительной информации по получению, вы можете зайти на официальный веб-сайт Let’s Encrypt.
Was this helpful?
1 / 0