Программы

Эпоха “Пост-Let’s Encrypt”. Кому по-прежнему стоит платить за SSL сертификаты? Бесплатный SSL-сертификат

Эпоха “Пост-Let’s Encrypt”. Кому по-прежнему стоит платить за SSL сертификаты? Бесплатный SSL-сертификат

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

Страница модуля интеграции Let’s Encrypt на сайте ISPsystem .

Обращаем ваше внимание, Let’s Encrypt имеет следующие ограничения:

  • Можно заказать только 5 сертификатов в неделю (TLD, включая его поддомены)
  • Срок действия Let’s Encrypt сертификата 3 месяца (каждые 3 месяца ISPmanager выполняет перевыпуск Let’s Encrypt сертификатов)

Данный функционал доступен с версии ISPmanager 5.131 .

Для установки плагина из-под учетной записи root пройдите Модули ->Интеграция .

После установки плагина Let’s Encrypt в ISPmanager Вы сможете получить действующий самообновляющийся SSL-сертификат для своего домена.

Для этого Вам понадобится пользователь, имеющий право пользоваться SSL, и действующее доменное имя, доступное для мировых ДНС.

После установки плагина в разделе WWW ->SSL-сертификаты появится дополнительная функциональность: кнопки Let"s Encrypt и Let’s Encrypt Журнал, при нажатии на первую вы приступите к процессу получения сертификата.

Вторая активируется, если у Вас в списке сертификатов уже имеется Let"s Encrypt сертификат и перенаправляет Вас к журналу событий, где отображается все, что происходит с ним.

Создание сертификата

Есть два способа получения Let"s Encrypt сертификата:

  • Из раздела WWW ->SSL-сертификаты .

Нажимаем на кнопку Let"s Encrypt и в появившемся окне нужно заполнить данные для генерации сертификата

Выбираем пользователя (если создание сертификата происходит из-под root) и домен.

  • Вместе с новым www-доменом

При создании нового домена, если выбран пункт Защищенное соединение (SSL) , появится дополнительная опция для выбора сертификата -- Let"s Encrypt сертификат . После заполнения всей необходимой информации для создания домена произойдет перенаправление на форму создания нового Let"s Encrypt сертификата.

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

Проверка необходимости обновления Ваших сертификатов, выданных сервисом Let’s Encrypt, будет проходить каждый день в 1:30 ночи по серверному времени.

И запускаться оно (обновление) будет если срок действия сертификата прекращается через семь или менее дней.

Так же можно запустить обновление сертификата вручную. Для этого имеется функция letsencrypt.check.update . В случае, если Вы хотите запустить преждевременно обновление необходимо вызвать эту функцию через утилиту mgrctl параметрами

force_update =yes, cert_name =%cert name%, user_name =%user name%

Важно!

Количество сертификатов для домена за короткий промежуток времени ограничено, поэтому не стоит злоупотреблять ручным обновлением.

При обновлении сертификата с DNS-проверкой будут заново сгенерированы TXT-записи. Если используется внешний DNS-сервер, то записи автоматически не будут добавлены и сертификат не сможет обновиться.

Технология получения сертификата

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

Если возникают ошибки, они заносятся в журнал. Повторная попытка получения предпринимается все через те же пять минут.

Можно запустить вручную letsencrypt.periodic через утилиту mgrctl .

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

В случае успешного получения самоподписанный сертификат меняется на Let"s Encrypt сертификат. Пользователь и администратор получают уведомления об успешном завершении получения.

Порядок запросов

  • Создание учетной записи
  • Авторизация
  • Запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен -- файл содержащий данные, полученные при аутентификации. На сервере существует глобальный алиас .well-known/acme-challenge/ , ведущий в директорию /usr/local/mgr5/www/letsencrypt . Все токены проверки будут создаваться по этому пути
  • Ожидание подтверждения успешного завершения проверки
  • Получение сертификата

DNS проверка

Мы добавляем возможность проверки владения доменом через TXT записи в доменной зоне. Для получения сертификата с DNS проверкой, при заказе сертификата просто поставьте "галочку" Проверка через DNS

Первоначально, необходимые TXT-записи будут автоматически добавлены средствами панели. Однако, если в процессе внутренней проверки выяснится, что для домена используется внешний DNS, процесс выдачи сертификата будет заморожен на 30 минут. Администратор и пользователь получат сообщения вида: Для продолжения процедуры получения сертификата Let"s Encypt %имя_сертификата% добавьте TXT-записи: "%записи%" на серверах имен "%сервера_имен%". Следующая проверка запланирована %дата_и_время_разморозки%. Будьте внимательны при добавлении TXT-записей, ошибки в имени или содержании не допускаются .

Если в течение суток после заказа сертификата проверка владения доменом не увенчается успехом то, как и в случае с проверкой через HTTP, попытки выпуска сертификата будут окончательно прекращены.

Почтовые домены

Для получения сертификата на почтовый домен необходимо при создании\редактировании почтового домена выбрать Новый Let"s Encrypt сертификат . Далее необходимо ввести псевдонимы, которые использует выбранный домен для работы почты (pop.your_domain.com, mail.your_domain.com, smtp.your_domain.com или др). Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS

Поддержка wildcard

Начиная с версии 5.147.0 в панелях Lite и Business реализована поддержка wildcard-сертификатов . Для получения такого сертификата, на форме заказа нужно включить чекбокс Wildcard

Внимание! Проверка владения доменом при выпуске wildcard-сертификата осуществляется исключительно по DNS. Также обращаем внимание на то, что псевдоним вида *.доменное.имя, указанный вручную, будет проигнорирован при заказе во избежание возможных конфликтов при проверках.

Нестандартные ситуации

  1. В Business-версии панели может возникнуть нестандартная ситуация, когда веб-домен "резолвится" на более чем один узел кластера. В случае, если у какого-либо из этих узлов отсутствует веб-роль, он не сможет участвовать в процедуре проверки по HTTP. Пути решения проблемы:
    1. Использовать DNS проверку
    2. Просто подождать. После нескольких провалов сервер ACME, путем перебора, успешно найдет подходящие адреса для HTTP проверки.

Эта форма - не обращение в поддержку.
Мы не можем идентифицировать вас и ответить на ваше сообщение.

В данной инструкции мы рассмотрим настройку и активацию сертификата Let"s Encrypt при использовании панели ISPmanager. Эта инструкция подходит как к хостингу для сайтов, так и к VDS хостингу. Для хостинга сайтов процедура несколько проще, т.к. настройку модуля мы уже произвели.

Инструкция делится на два шага (один из которых можно пропустить, если у Вас не VDS).

Шаг №1: Настройка модуля Let"s Encrypt

Внимание! Этот этап нужно пропустить, и перейти на , если у Вас хостинг для сайтов!

После входа в панель ISPmanager, необходимо активировать модуль Let"s Encrypt. Это делается в разделе "Модули" нажатием на кнопку установки напротив модуля Let"s Encrypt.

Как только панель установится, отобразится информационная страничка о том, что такое Let"s Encrypt. Можно просто нажать "Ок".

На этом настройка закончена. Можно приступать к генерации сертификатов.

Шаг №2: Генерация сертификата Let"s Encrypt

Для настройки сертификата Let"s Encrypt, при создании или изменении домена в разделе "WWW-домены", необходимо поставить галочку "Защищенное соединение (SSL)", "Перенаправлять HTTP-запросы в HTTPS" при желании, и выбрать SSL-сертификат "Новый Let"s Encrypt сертификат".

Система попросит подтвердить параметры сертификата. Нужно нажать "Ок" для продолжения.

Всё готово. Сертификат будет подписан центром сертификации Let"s Encrypt в течение 10 минут. Если в течение 10 минут сертификат не заработал, нужно посмотреть журнал и/или обратиться к нам при возникновении вопросов.

Просмотр журнала (в случае, если возникли какие-то проблемы)

Журнал находится в разделе "SSL сертификаты" по кнопке "Let"s Encrypt журнал".

В журнале могут быть описаны ошибки, если они возникли. В случае возникнования вопросов, Вы всегда можете написать нам в поддержку (мы и проконсультируем, и сертификат сделаем).
В нашем случае ошибок нет, поэтому сертификат был успешно выдан.

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

На данный момент поддержкой сертификатов Let"s Encrypt оборудованы все наши серверы виртуального хостинга, в преддверии 2017 года - это важный этап в развитии сервиса.

В этой статье мы произведем сравнение сертификатов от Let"s Encrypt с платными решениями, рассмотрим то, как они работают, разберем по шагам то, как их установить и подскажем решения часто возникающих проблем.

Когда мы знакомились с сертификатами в начале 2016 года, были проблемы в работе сайтов с операционной системы Windows XP , не было поддержки IPv6 и IDN доменных имен при выдаче сертификатов. На момент написания статьи, все данные проблемы были решены: https://letsencrypt.org/upcoming-features/

В сентябре этого года, компания Google навела много шума, заявлением о том, что сайты работающие через незащищенное соединение с января 2017 года будут помечаться как небезопасные : https://security.googleblog.com/2016/09/moving-towards-more-secure-web.html , но если внимательно ознакомиться с записью в их блоге, то это изменение относится только для страниц, на которых собираются личные данные пользователей , при этом, красный индикатор незащищенного соединения будет только в режиме инкогнито.

Один из очередных мифов - необходимость выделенного IP адреса для подключения сертификатов. Раньше это действительно было так, но с введением поддержки SNI в этом нет необходимости.

Технически, бесплатные сертификаты от Let"s Encrypt ничем не отличаются от платных , которые выдаются через подтверждение доменного имени. Как бесплатные, так и платные сертификаты работают путем проверки цепочки сертификатов. Бесплатные сертификаты от Let"s Encrypt подписываются корневым сертификатом, который хранится точно также, как в платных центрах сертификации.

Несмотря на это, многие владельцы сайтов стали покупать сертификаты и устанавливать на своих сайты. Более смышленые стали уточнять в поддержке хостинга о возможности подключения бесплатных сертификатов от Let"s Encrypt.

Давайте теперь рассмотрим, как получить бесплатный сертификат. Если Ваш хостинг-провайдер использует панели управления DirectAdmin, Cpanel или ISPmanager 5 , то просите включить возможность получения сертификатов Let"s Encrypt. Если Вам откажут или потребуют оплаты - стоит задуматься о смене хостинг-провайдера.

Если Вы наш клиент и обладатель хостинга с панелью ISPmanager 4 или Cpanel , то сертификаты для Ваших сайтов создаются автоматически. Обычно это происходит ночью, проверьте, возможно Ваш сайт уже доступен через защищенное соединение!

В случае с ISPmanager 5 , сертификат необходимо создать вручную, но это совсем не сложно. Для этого необходимо перейти в раздел "WWW домены" и выбрать необходимое доменное имя. При изменении установите галочку "SSL сертификат" и в выпадающем меню выберите "Let"s Encrypt certificate".

После этого появится окно с заполнением данных сертификата, все данные необходимо заполнить на латинице.


На этом всё, обычно в течение 10-15 минут сертификат создается и подключается к сайту.
Если возникли какие-то ошибки или сертификат не был подключен, то в разделе "SSL-сертификаты", выбрав сертификат и нажав "Let"s Encrypt Журнал" можно посмотреть, что пошло не так. Если выдача сертификата проходит без ошибок, то должно быть так, как на картинке ниже.


Теперь рассмотрим создание сертификата с панелью DirectAdmin. Первое, что необходимо сделать, это перейти в раздел "Настройки доменов", выбрать необходимое доменное имя, установить галочку "Защищенный SSL", а также выбрать "Использовать ссылку с private_html на public_html для работы сайта по http и https".




После этого необходимо перейти в раздел "SSL сертификаты", выбрать "Бесплатный сертификат от Let"s Encrypt" и заполнить данные сертификата. В списке можно выбрать поддомены, которые необходимо включить в сертификат (обычно это само имя домена и поддомен www).




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


Так как на остальных панелях сертификаты выдаются автоматически, теперь рассмотрим ситуации, при которых выдача сертификатов невозможна.

  1. Несмотря на то, что Let"s Encrypt официально заявила о поддержке IDN доменных имен (кириллических), не все панели управления поддерживают выдачу сертификатов для данных доменных имен (на момент написания статьи в ноябре 2016 года).
  2. Для получения сертификата доменное имя должно быть делегировано на сервер (это необходимо для проверки владения доменным именем).
  3. Сертификаты на системные поддомены вида *.u-host.in, *.o-host.in, *.p-host.in, *.lh1.in и *.pluton-host.ru периодически не выдаются из-за превышения лимитов Let"s Encrypt (не более 20 сертификатов в неделю).
  4. Проверка доменного имени происходит через запрос файла из папки.well-known/acme-challenge, некоторые сайты перенаправляют все запросы в файл index.php из-за чего проверка доменного имени завершается с ошибкой.
Если в файле.htaccess есть подобная запись, то убедитесь, что выполняется проверка того, что запрос не является запросом файла или папки.

RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteRule . /index.php [L]

RewriteEngine On

RewriteBase /


Достаточно добавить две строки перед перенаправлением запросов в index.php, с помощью которых сервер проверит, не является ли путь в адресной строке файлом или папкой.

RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]

RewriteEngine On

RewriteBase /

RewriteRule ^ index \ . php $ - [ L ]

RewriteCond % { REQUEST_FILENAME } ! - f

RewriteCond % { REQUEST_FILENAME } ! - d

RewriteRule . / index . php [ L ]


Бывают ситуации, когда сертификат выдан, но при заходе на сайт , он отображается некорректно , либо сертификат не отображается зеленым цветом. Обычно это происходит по той причине, что подключаемые файлы скриптов, стилей и графики загружаются через незащищенное соединение .
Проверить это очень просто, зайдите на сайт через защищенное соединение и откройте консоль браузера (комбинация Ctrl + Shift + J в Google Chrome), если там будут записи вида:

Mixed Content: The page at "https://p-host.in/image.html" was loaded over HTTPS, but requested an insecure image "http://p-host.in/cat.jpg". This content should also be served over HTTPS.

Mixed Content : The page at "https://p-host.in/image.html" was loaded over HTTPS , but requested an insecure image "http://p-host.in/cat.jpg" . This content should also be served over HTTPS .


То необходимо поправить все ссылки на сайте, чтобы они работали через защищенное соединение сайта. Как это сделать? Поищите документацию к своей CMS и найдите, где можно поменять адрес сайта, либо воспользуйтесь услугами программиста, который настроит Ваш сайт или же доработает его при необходимости.

Заключительным этапом в настройке является переадресация всех запросов на защищенное соединение . Для этого необходимо добавить один из предложенных вариантов ниже в файл.htaccess сайта (обычно он находится рядом с файлом index.php или index.html).