Перейти к содержимому

Let s encrypt как получить сертификат

  • автор:

Как установить бесплатный сертификат Let’s Encrypt и настроить автоматический перевыпуск

url image

Выпуск SSL-сертификата является одной из важных частей администрирования веб-сайта, он устанавливается с целью защиты от перехвата данных пользователей, например, логинов и паролей, email-адресов или банковских карт. На сегодняшний день даже на тех сайтах, где не вводятся важные данные, которые могли бы быть перехвачены, рекомендуется использовать хотя бы самый простой сертификат. Например, бесплатный SSL от Let’s Encrypt. После выпуска и установки SSL-сертификата сайт начнет работу по HTTPS-протоколу (т.е. защищенному HTTP), порт уже будет не 80, а 443 — это порт HTTPS, с которым свободно работает браузер без необходимости указывать его в адресной строке. В этой статье мы расскажем, как получить SSL-сертификат Let’s Encrypt и настроить его перевыпуск с помощью утилиты Certbot.

Устанавливаем Certbot с плагином для веб-сервера

Чтобы SSL-сертификат от Let’s Encrypt можно было выпустить и автоматически установить в конфигурацию веб-сервера, потребуется установить специальную утилиту — Certbot, а также один из её плагинов в зависимости от используемого веб-сервера.

Debian/Ubuntu

Перед установкой желательно выполнить команду apt update . Если используется Apache:

apt install certbot python3-certbot-apache

Если используется Nginx:

apt install certbot python3-certbot-nginx

CentOS 7

yum install epel-release

Если используется Apache:

yum install certbot certbot-apache

Если используется Nginx:

yum install certbot certbot-nginx

Certbot можем считать установленным, однако это ещё не всё. Так как мы планируем настроить автоматическое встраивание SSL-сертификата в конфигурацию Apache или Nginx, необходимо проверить конфигурационный файл (виртуальный хост) на наличие и корректность интересующих нас строк.

Настраиваем виртуальный хост Apache или Nginx

Когда Certbot будет выполнять автоматическую установку SSL-сертификата, его плагину потребуется найти в конфигурационных файлах Apache или Nginx конкретные строки, чтобы внести необходимые изменения. Поэтому предварительно нужно убедиться в их наличии и корректности. Так что на этом этапе мы вручную найдём и проверим директивы ServerName и ServerAlias (в случае Apache) или server_name (в случае Nginx) с указанием соответствующего домена, для которого будем выпускать и устанавливать SSL. Например, в случае Apache виртуальный хост может размещаться здесь: /etc/httpd/conf.d/default.conf (для CentOS) /etc/apache2/conf.d/default.conf (для Debian/Ubuntu, далее в примерах для Apache будет указан путь только в варианте для CentOS, но на Debian/Ubuntu процедура аналогична, нужно только заменить httpd на apache2 ) Более точно можно посмотреть с помощью команды:

apachectl -S 

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

/etc/nginx/sites-available/example.com.conf 

Проверим содержимое файла конфигурации, открыв его в nano или другом текстовом редакторе: В случае Apache:

vi /etc/httpd/conf.d/default.conf

В случае Nginx:

nano /etc/nginx/sites-available/example.com.conf

Проверяем, что в файле содержится строка ServerName и ServerAlias (в случае Apache) или server_name (в случае Nginx). Пример отрывка корректного содержимого виртуального хоста: в случае /etc/httpd/conf.d/default.conf

. ServerName example.com ServerAlias www.example.com . 

в случае /etc/nginx/sites-available/example.com

. server_name example.com www.example.com; . 

Если у вас всё аналогично, можно закрыть редактор (с сохранением изменений) и перейти к следующему этапу. Если есть отличия, проверьте, параметры виртуальных хостов и приведите вышеуказанные строки к аналогичному виду, в частности необходимо прописать в директиве server_name доменное имя и поддомен www. После чего сохраняем файл и закрываем редактор. Финальная проверка — проверяем синтаксис в файлах конфигурации: В случае Apache:

apachectl configtest

В случае Nginx:

nginx -t

Если выводится ошибка, внимательно изучите, на какой файл и строку «ругается» проверка, и поправьте эти строки в соответствии с корректным синтаксисом, пока не получите подтверждение о том, что проверка конфигурационного файла успешно пройдена. Чтобы применить изменения в файле конфигурации, необходимо перезапустить веб-сервер: В случае Apache:

systemctl restart httpd

Напомню, в Debian/Ubuntu httpd заменяем на apache2 , поэтому команда будет иметь вид: systemctl restart apache2 . В случае Nginx:

systemctl reload nginx

Теперь плагин Certbot при автоматической установке найдет нужные строки и проведет необходимые изменения для установки сертификата Let’sEncrypt.

Выпускаем SSL-сертификат Let’s Encrypt

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

certbot --apache -d testpanel.fvds.ru -d www.testpanel.fvds.ru

В случае Nginx:

certbot --nginx -d example.com -d www.example.com

Произойдет запуск Certbot с плагином —apache или —nginx , опция -d необходима чтобы обозначить доменные имена, для которых мы хотим получить сертификат Let’s Encrypt. Если утилита запускается впервые, появится сообщение с просьбой указать адрес эл. почты и принять условия обслуживания. Адрес почты лучше указать действующий, так как Let’s Encrypt будет отправлять туда письма о проблемах и другие уведомления. После этого Certbot связывается с сертификационным центром Let’s Encrypt, который, в свою очередь, отправляет запрос к вашему сайту по специально сгенерированному URL, чтобы подтвердить, что домен, для которого вы выпускаете сертификат, принадлежит действительно вам. После успешного подтверждения утилита предложит выбрать дополнительную опцию для установки:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Выбирая первый вариант, мы просим не добавлять редирект с http:// на https:// для вашего сайта. Он подходит для случаев, когда редирект не требуется либо когда вы планируете добавить его самостоятельно. Во втором варианте, помимо внесения в виртуальный хост строк о SSL-сертификате, утилита добавит строки, необходимые для работы редиректа с http:// на https://. Когда выберете предпочитаемый вариант, нажмите Enter. Виртуальный хост будет обновлён, а веб-сервер перезапустится для применения новых параметров. На этом Certbot завершает работу и выводит текст, в котором сообщает об успешном выпуске и указывает полный путь до файлов сертификата Let’s Encrypt:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-08-18. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Вот и всё, теперь сертификат Let’s Encrypt установлен! Проверьте ваш веб-сайт в браузере, добавив в адресной строке https:// (если выбирали опцию без редиректа), на наличие замка в адресной строке браузера. Наличие этого индикатора означает, что ваш сайт защищён. Наверняка вы знаете, что сертификаты не бесконечны и выпускаются лишь на определенный срок. В случае Let’s Encrypt — это 90 дней. Чтобы не выполнять процедуру перевыпуска каждые 90 дней вручную, перейдем к этапу автоматического обновления сертификата.

Настраиваем автоматический перевыпуск сертификата

Если у вас Debian/Ubuntu, то Certbot в состоянии выполнять автоматический перевыпуск, добавляя в systemd специальный таймер, который по умолчанию настроен на запуск два раза в день, чтобы утилита могла проверять все сертификаты и автоматически перевыпускать те из них, которые истекают менее чем через 30 дней. Проверим статус таймера с помощью команды systemctl :

systemctl status certbot.timer ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left Triggers: ● certbot.service 

Также стоит периодически проверять, как работает механизм автоматического перевыпуска, для этого запускаем перевыпуск «вхолостую» командой:

certbot renew --dry-run

В случае CentOS нам нужно самостоятельно внести задание в планировщик cron командой:

crontab -e

Добавляем на новую строку задание в таком виде:

30 4 * * * /usr/bin/certbot renew --quiet

В задании указано, что запуск проверки необходимости перевыпуска сертификата будет происходить ежедневно в 4:30 ночи по серверному времени. Вы можете корректировать это задание на периодичность и время запуска по своему усмотрению. Если при перевыпуске «вхолостую» ошибок нет, то и при перевыпуске по заданию (в таймере или планировщике) Certbot продлит SSL-сертификаты, когда они будут истекать, а также внесёт изменения в виртуальных хост веб-сервера и перезапустит его для применения изменений. Если процесс автоматического перевыпуска завершится с ошибкой, то Let’s Encrypt отправит сообщение на указанный ранее адрес электронной почты (который вы указали при первом запуске утилиты) с предупреждением о том, что выпуск сертификата не был осуществлён, а текущий сертификат истекает.

Выпуск Wildcard сертификата

Сейчас рассмотрим выпуск Wildcard сертификата, данный тип сертификатов позволяет защищать не только домен второго уровня, но и все поддомены, связанные с ним. К примеру, если на сервере установлено несколько сайтов и все необходимо подключить к SSL, то необязательно выпускать на каждый домен по одному сертификату: lamp.fvds.ru, www.lamp.fvds.ru, shop.lamp.fvds.ru, forum.lamp.fvds.ru — можно обойтись только одним Wildcard. Стоит обратить внимание на то, что данный тип сертификата Wildcard требует обязательную проверку по DNS записи TXT. При запуске процедуры выпуска сертификата Certbot запросит два раза добавить TXT-запись с разными значениями. К сожалению, в данном случае указанный ранее способ автопродления сертификата не будет работать из-за проверки по DNS, потребуется ручной выпуск. Пожалуйста, учитывайте этот момент. Запускаем команду:

certbot --manual --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory -d *.lamp.fvds.ru -d lamp.fvds.ru

Замените значения на свои: *.lamp.fvds.ru и lamp.fvds.ru Пример: *.domain.ru и domain.ru. После запуска команды вывод будет следующим:

Please deploy a DNS TXT record under the name _acme-challenge.lamp.fvds.ru with the following value: RYHdWpSmMuVjdJFZT9JGBs7zuQOFgN78f1Azt1fwNcc Before continuing, verify the record is deployed.

Это означает, что сейчас требуется создать TXT ресурсную запись для доменного имени в DNS. Имя: _acme-challenge.lamp.fvds.ru Значение: RYHdWpSmMuVjdJFZT9JGBs7zuQOFgN78f1Azt1fwNcc Если домен делегирован на сервера имён FirstVDS, можете перейти в DNSmanager и создать ресурсную запись, ориентируясь по прикреплённым скриншотам: После сохранения записи результат должен быть таким: Как только создадим запись, возвращаемся в терминал и нажимаем «Enter» для того, чтобы продолжить выпуск. Обязательно обратите внимание на то, что Certbot запросит создание второй TXT записи — нужно создать её аналогичным образом и завершить выпуск. Сертификат также сохранится в указанной директории: /etc/letsencrypt/live По завершении выпуска сертификата рекомендуем изучить наши статьи по его установке на домен и для почты. Отметим, что при использовании автовыпуска сертификатов (не Wildcard) с плагинами для Apache или Nginx, установка сертификата на домен происходит автоматически. Если ваш сервер работает с панелью управления ispmanager, можете выпустить такой же сертификат по инструкции.

Получение бесплатного SSL/TLS-сертификата от Let’s Encrypt

Если в Plesk установлено расширение Let’s Encrypt, вы можете бесплатно получить сертификат для своего домена от центра сертификации Let’s Encrypt и использовать этот сертификат для защиты своего домена, веб-почты и субдомена с префиксом “www” для домена и любого указанного псевдонима.

Чтобы бесплатно получить SSL/TLS-сертификат от Let’s Encrypt:

  1. Откройте страницу Сайты и домены >Let’s Encrypt.
  2. Укажите адрес электронной почты для срочных уведомлений и восстановления утерянных ключей. По умолчанию используется электронный адрес владельца подписки.
  3. Укажите, хотите ли вы включить в сертификат альтернативное доменное имя для домена и каждого выбранного псевдонима. Например: www.example.com для example.com. Мы рекомендуем выбрать эту опцию.
  4. Укажите, хотите ли вы включить в сертификат веб-почту, например: webmail.example.com . Мы рекомендуем выбрать эту опцию.
  5. Если для домена заданы псевдонимы, выберите те из них, которые вы хотите включить в сертификат.
  6. Нажмите Установить, чтобы установить сертификат Let’s Encrypt для подписки.

image 78594

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

  1. Перейдите на вкладку Сайты и домены и нажмите Настройки хостинга.
  2. Поставьте галочку Поддержка SSL/TLS.
  3. Выберите только что полученный сертификат Let’s Encrypt в меню Сертификат и нажмите OK.

Как получить SSL-сертификат Let’s Encrypt

SSL-сертификат — это цифровой сертификат, удостоверяющий подлинность веб-сайта и позволяющий использовать зашифрованное соединение. Без защищенного соединения сайту будет проблематично продвинуться в поисковых системах и завоевать доверие клиентов. Для небольших веб-проектов, лендингов и блогов отлично подойдет бесплатный SSL-сертификат Let’s Encrypt. В нашей статье мы подробно расскажем, как получить его на виртуальном хостинге и VPS/VDS сервере.

Выпуск и настройка Let’s Encrypt на хостинге

Виртуальный хостинг (shared hosting) — это вид хостинга, при котором множество клиентов располагается на одном веб-сервере. Одно из главных преимуществ шаред-хостинга — он предоставляется с удобной панелью управления, с которой могут разобраться даже новички. Поэтому выпуск сертификата на обычном хостинге не составит труда.

Мы покажем, как сгенерировать Let’s Encrypt на примере ispmanager и собственной панели управления от IHC. Обратите внимание, для выпуска Let’s Encrypt понадобится выделенный IP-адрес. Что такое выделенный IP-адрес и зачем он нужен — читайте в отдельной статье.

Панель управления IHC

  1. Переходим в панель управления хостингом. Во вкладке «Администрирование» находим пункт «Выделенные IP» и нажимаем на плюсик.
  2. Заказываем выделенный IP-адрес (он стоит всего 100 ₽ в месяц), оплачиваем заказ удобным способом. Активация займет несколько минут.
  3. Переходим в раздел «Сайты», напротив нужного веб-ресурса нажимаем «Сменить IP».
  4. Выбираем выделенный IP в качестве нового и сохраняем изменения.
  5. Возвращаемся в «Управление сайтами» и теперь выбираем пункт «SSL» напротив нужного сайта.
  6. Выбираем действие «Let’s Encrypt» и ставим галочку напротив «Редирект на https». Нажимаем «Продолжить».

В течение нескольких минут ваш запрос будет обработан и сайт заработает по защищенному HTTPS-протоколу.

ispmanager

Наши клиенты могут арендовать хостинг с популярной панелью управления ispmanager. Чтобы сгенерировать бесплатный SSL-сертификат в ней, необходимо:

  1. Зайти в ispmanager (доступы появятся в интерфейсе панели ИХЦ после оплаты и активации услуги).
  2. Перейти в раздел WWW ⇒ SSL-сертификаты. Нажать на «Let’s Encrypt».
  3. В поле «Домен» выбрать нужный сайт и нажать «Ок».

Убедитесь, что в настройках сайта стоит галочка напротив пункта с перенаправлением на HTTPS. Отлично, все готово.

Выпуск и настройка Let’s Encrypt на VPS

Для удобного получения бесплатного SSL-сертификата на VPS/VDS сервере без панели управления потребуется специальный клиент протокола ACME — Certbot. Он нужен для запроса сертификата, валидации домена, установки и дальнейшего автопродления сертификатов от Let’s Encrypt.

Системные требования для работы Certbot:

  1. Linux, macOS, BSD и Windows.
  2. Root-доступ в Linux/BSD. Доступ администратора в Windows.
  3. Порт 80 открыт.

Мы покажем отдельные инструкции для веб-серверов Apache и Nginx.

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

Первое, что нужно сделать — установить Certbot. На официальном сайте Certbot есть инструкции под разные дистрибутивы Linux. Например, для установки на Ubuntu 18.04 выполните команды:

$ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-apache
$ sudo yum install python2-certbot-apache
$ sudo apt-get install python-certbot-apache -t stretch-backports

В первый запуск Certbot будет предложено указать электронную почту для регистрации в Let’s Encrypt и получения уведомлений. Также вам потребуется прочитать и принять условия использования.

После установки можно переходить непосредственно к выпуску Let’s Encrypt. Мы рекомендуем самый простой способ — с помощью специального плагина Apache для выпуска и автоматической установки сертификата.

sudo certbot --apache

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

После окончания установки Let’s Encrypt вы увидите дополнительную информацию, а также ссылку для проверки.

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

Мы покажем примеры установки для нескольких дистрибутивов Линукс. С остальными инструкциями вы можете ознакомиться на официальном сайте.

sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx
$ sudo yum install python2-certbot-nginx
sudo apt-get install python-certbot-nginx -t stretch-backports

После установки запускаем плагин Nginx:

sudo certbot --nginx

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

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

Сразу при установке Certbot добавляет cron-задание для автоматического обновления полученных им сертификатов. Чтобы протестировать автообновление, выполните команду:

sudo certbot renew --dry-run

Команда подходит как для Apache, так и для Nginx.

Заключение

Теперь вы знаете, как получить бесплатный SSL-сертификат Let’s Encrypt на обычном шаред-хостинге с помощью панели управления и на VPS/VDS с помощью Certbot. Являетесь нашим клиентом и остались вопросы? Задавайте их в службу технической поддержки — мы обязательно поможем!

Похожие статьи

Как установить капчу на сайт

Капчей (captcha) называется автоматизированный тест для различения человека и робота, который используется в качестве защиты от спама на сайтах и в приложениях. За время своего развития этот инструмент претерпевал немало изменений. Если раньше капча представляла собой проверку в виде изображения с искаженными символами, которые требовалось ввести перед отправкой данных на сервер, то сейчас для ее прохождения пользователям даже не нужно предпринимать никаких дополнительных действий. Добавление капчи на веб-сайт поможет вам защититься от ботов. В статье мы расскажем об известных сервисах, позволяющих это сделать, и объясним, как установить капчу на сайт, используя самый популярный из них.

CMS или конструктор: что лучше выбрать

Сегодня, чтобы создать полноценный работающий сайт, вовсе не обязательно владеть языками программирования и другими специальными знаниями. Для этого давно существуют программные продукты, которые делают всю техническую работу за вас. Конструкторы сайтов и системы управления контентом (CMS) являются простыми и удобными инструментами, позволяющими запустить собственный веб-проект. Их часто сравнивают, но на самом деле оба этих решения эффективны — в разных обстоятельствах. Мы расскажем, чем CMS отличаются от конструкторов сайтов, и перечислим особенности каждого метода.

Как найти битые ссылки на сайте бесплатно

Битые ссылки (broken links) — это ссылки на сайте, которые не работают: например, ведут на несуществующие страницы с кодом ошибки 404 (Page Not Found). Большое количество битых ссылок ухудшает позиции сайта в поисковых системах, а также негативно сказывается на удобстве для пользователей. В нашей статье мы расскажем, как проверить сайт на битые ссылки с помощью бесплатных онлайн-инструментов.

Нажмите дважды, чтобы увеличить

Создание сертификата «Let’s Encrypt» на Linux

Для полноценного использования TrueConf Server или TrueConf MCU необходимо наличие TLS сертификата. Например, для:

  • синхронизации TrueConf Server с LDAP;
  • подключения к вебинарам TrueConf Server через браузер;
  • подключения к конференциям через браузер на TrueConf MCU.

Ранее мы показали, как сгенерировать бесплатный Let’s Encrypt сертификат на Windows. В этой статье мы расскажем, как это сделать на операционных системах семейства Linux, которые поддержаны TrueConf Server и TrueConf MCU.

Подготовка

Чтобы успешно сгенерировать и использовать сертификат Let’s Encrypt вам необходимо проделать следующие подготовительные действия:

  1. Установить требуемое решение (TrueConf Server или TrueConf MCU).
  2. Зарегистрировать доменное имя с публичным (белым) IP-адресом.
  3. Открыть порт 80 на сервере, где будет происходить получение сертификата.

Генерация сертификата

Для получения сертификата Let’s Encrypt в ОС семейства Linux используется утилита Certbot. Как правило, она доступна из официальных репозиториев ОС Linux, но также её можно скачать и в виде установочного пакета (см. официальный сайт).

Для выполнения перечисленных ниже команд в ОС должна присутствовать программа sudo и пользователь, под которым они запускаются, должен быть в соответствующей группе. В Debian по умолчанию sudo может отсутствовать, проверьте её наличие командой sudo -V и установите при необходимости с помощью команды apt install sudo (выполняется под учётной записью root). Для добавления пользователя с логином user в группу sudo выполните usermod -a -G sudo user под учётной записью root.

  1. Установите Certbot, выполнив следующую команду:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *