Бесплатные сертификаты от Let's Encrypt

Бесплатные сертификаты от Let's Encrypt

11 ноября 2016
Впервые с данной технологией мы познакомились в начале 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 есть подобная запись, то убедитесь, что выполняется проверка того, что запрос не является запросом файла или папки.


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


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


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

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





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