Бесплатный SSL сертификат для сайта

миниатюра поста

Сегодня безопасный обмен информацией в интернете по защищенному протоколу https стал фактически стандартом. Главным образом этому способствовали поисковые системы, для которых наличие ssl-сертификата стало новым фактором ранжирования сайтов в поисковой выдаче. В данной заметке речь пойдет об установке бесплатого ssl-сертификата на VPS-сервер под управлением Centos 7.

2 года я пользовался платным ssl-сертификатом от AlphaSSL, теперь решил попробовать бесплатный сертификат от Let's Encrypt и оказалось его можно установить гораздо проще, буквально одной командой. Срок действия сертифакта от Let's Encrypt всего 3 месяца, но процесс его перевыпуска полностью автоматизирован. Установку делал по инструкции с сайта certbot.eff.org и уже через 20 минут на сайте работал новый ssl-сертификат.

Перейдя на сайт, выбираем веб-сервер и операционную систему на сервере и получаем инструкцию по установке сертификата. Я приведу команды для Nginx и Centos 7. Перед выполнением этих команд нужно подключиться к VPS-серверу по ssh. Определить какая у вас стоит версия Centos можно командой:

cat /etc/centos-release

Дальше устанавливаем snapd - систему управления пакетами, через которую впоследствии будем устанавливать certbot. Есть и другие способы установки certbot, но использование для установки snapd отмечено как строго рекомендуемое.

sudo yum install snapd

Если пакет snapd не будет найден, нужно подключить репозиторий epel-release командой: sudo yum install epel-release && sudo yum update

Добавляем snapd в автозагрузку:

sudo systemctl enable --now snapd.socket

Ключ --now позволяет тут же запустить сервис, чтобы не давать отдельную команду на запуск. Создаем символьную ссылку:

sudo ln -s /var/lib/snapd/snap /snap

Обновляем snapd до последней версии:

sudo snap install core; sudo snap refresh core

Теперь нужно убедиться в отсутствии пакета certbot, установленного через стандартный менеджер пакетов yum, а если он есть, то удалить его:

sudo yum remove certbot

У меня такого пакета не было установлено. Устанавливаем certbot через snap:

sudo snap install --classic certbot

Создаем символьную ссылку:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Теперь все готово для установки сертификата. Это можно сделать автоматически либо установить сертификат вручную. Я выбрал автоматический вариант, но перед этим сделал резервную копию конфигурационного файла nginx:

sudo cp /etc/nginx/conf.d/site.conf /etc/nginx/conf.d/site.conf.backup sudo certbot --nginx

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

  • - указать свой e-mail адрес, для срочных уведомлений касательно безопасности;
  • - принять условия сервиса (y);
  • - дать согласие на рассылку новостей(y) или отказаться от нее(n);
  • - выбрать домены, для которых будет установлен сертификат, указать цифрами через пробел;

Я ошибся и указал не тот e-mail который нужно. Исправить можно командой:

sudo certbot update_account -m newmail@gmail.com

Теперь нужно протестировать автоматический перевыпуск сертификата:

sudo certbot renew --dry-run

Если все прошло успешно появится сообщение "Congratulations, all simulated renewals succeeded". А в выводе команды systemctl list-timers должена появиться строчка с юнитом snap.certbot.renew.timer, который будет отвечать за запуск сервиса автоматического перевыпуска сертификатов snap.certbot.renew.service.

Перезапускаем nginx, а также сервер генерации динамического содержимого, например Apache:

sudo systemctl restart nginx apache2

Готово. Теперь ваш сайт будет открыватся по https. В конфигурационном файле nginx все настройки сохранились, были лишь добавлены несколько строк с комментарием "# managed by Certbot". Проверить что данные сертификата обновились можно нажав на замочек рядом с адресом сайта в любом браузере.

Дата публикацииSun, 01 May 2022 21:14:01 GMT Просмотры30
Реклама
Похожие материалы