Let's Encrypt - бесплатный SSL-сертификат: как получить, инструкция по установке, настройке и продлению. Бесплатные SSL сертификаты от Let's Encrypt Let’s Encrypt от хостинг-провайдеров

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

Для шифрования данных в этом протоколе используются сертификаты SSL. Сейчас HTTPS набирает большую популярность, такие компании, как Google пытаются заставить все больше сайтов интернета использовать SSL для защиты своих данных и организации более безопасного соединения. С другой стороны появился сервис Lets Encrypt, который позволяет получить SSL сертификат каждому полностью бесплатно. В этой статье мы рассмотрим как выполняется установка ssl сертификата Apache от Lets Encrypt.

Установка SSL сертификата Lets Encrypt в Apache

Я буду предполагать, что Apache у вас уже установлен и настроен для работы по протоколу http. Если это не так посмотрите статью . Перед тем как переходить к самой настройке веб сервера нам нужно получить ssl сертификат, а для этого нужно установить клиент сервиса в систему.

Шаг 1. Установка клиента Lets Encrypt

Мы будем выполнять установку клиента Lets Encrypt из официальных репозиториев. Официальный клиент от Lets Encrypt называется certbot, в репозиториях Ubuntu 16.04 есть упрощенная версия - Letsencrypt. Нам полностью хватит ее функциональности. Для установки выполните команды:

sudo apt update
$ sudo apt install python-letsencrypt-apache

После этого клиент будет готов к использованию.

Шаг 2. Настройка Apache

Если Apache настроен на работу по http, то перед тем как идти дальше, должна быть выполнена настройка ssl apache. Нам нужно активировать модуль ssl и включить использование ssl по умолчанию.

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

sudo a2enmod ssl

Для использования SSL по умолчанию включаем конфигурационный файл:

sudo a2ensite default-ssl.conf

Осталось перезапустить веб-сервер для применения изменений:

sudo systemctl restart apache2

Шаг 3. Получение SSL сертификата

Установка ssl сертификата с помощью клиента Lets Encrypt выполняется очень просто. Клиент автоматически запросит и установит новый сертификат для принадлежащего вам домена.

Чтобы получить сертификат для одного домена, достаточно передать этот домен в параметрах команды:

sudo letsencrypt --apache -d example.com

Если нужно сделать сертификат действительным для нескольких доменов или субдоменов вы можете передать их в дополнительных параметрах. Первое доменное имя будет основным, поэтому рекомендуется передавать первым домен верхнего уровня, а уже потом субдомены:

sudo letsencrypt --apache -d example.com -d www.example.com

Затем примите лицензионное соглашение Lets Encrypt:

Утилита сама выполнит настройку веб-сервера Apache, вам только нужно будет выбрать надо ли разрешать http трафик или сразу перенаправлять все на https. Безопаснее и более правильно перенаправлять весь входящий трафик на https.

Когда установка SSL сертификата Apache ubuntu будет завершена, вы найдете созданные файлы сертификатов в папке /etc/letsencrypt/live. В этой папке будут четыре файла:

  • cert.pem - ваш сертификат домена;
  • chain.pem - сертификат цепочки Let"s Encrypt;
  • fullchain.pem - cert.pem и chain.pem вместе;
  • privkey.pem - секретный ключ вашего сертификата.

Теперь вы можете зайти на сайт по https. Чтобы проверить как работает SSL и правильно ли выполнена установка ssl сертификата на сайт, вы можете открыть в браузере такую ссылку:

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

Шаг 4. Автопродление сертификата

Настройка ssl Apache завершена. Но есть один минус, все сертификаты, полученные от Lets Encrypt действительны только на протяжении 90 дней и рекомендуется продлевать и срок действия каждые 60 дней. Клиент letsecnrypt имеет команду renew, которая позволяет проверить установленные сертификаты и обновить их если до истечения срока осталось меньше 30 дней.

Чтобы запустить процесс обновления для всех настроенных доменов выполните:

sudo letsencrypt renew

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

Самый простой способ автоматизировать этот процесс - добавить вызов утилиты в планировщик corn. Для этого выполните команду:

Затем, в открывшемся текстовом редакторе добавьте строку и сохраните изменения:

30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log

Таким образом, мы создали задачу, которая будет выполнять команду обновления каждый понедельник, в 2:30 утра. Информация про результат выполнения будет сохранятся в файл /var/log/le-renewal.log.

Выводы

В этой статье мы рассмотрели как выполняется установка ssl сертификата apache lets encrypt. Это поможет защитить ваш сайт от MITM атак, подслушивания и модификации трафика, а также благодаря тенденциям поощрения перехода на https может положительно сказаться на росте трафика.

В этом обзоре мы расскажем об особенностях установки и привязки бесплатного TLS/SSL сертификата от Let’s Encrypt для сайта на веб сервере IIS, запущенного на Windows Server 2019/2016/2012 R2.

Let’s Encrypt и ACME клиенты для Windows

Наличие TLS/SSL сертификата у сайта позволяет защитить данные пользователей, передаваемые по сети от атак человек-посередине (man-in-the-middle) и гарантировать целостность переданных данных. Некоммерческий центр сертификации Let ’s Encrypt позволяет в автоматическом режиме через API выпускать бесплатные криптографические TLS сертификаты X.509 для шифрования (HTTPS) . Выдаются только сертификаты для валидации доменов (domain validation), со сроком действия 90 дней (есть ограничение – 50 сертификатов для одного домена в неделю). Но вы можете автоматически перевыпускать SSL сертификат для своего сайта по расписанию.

API интерфейс, позволяющий автоматически выпускать сертификаты называется Automated Certificate Management Environment (ACME ) API. Для Windows систем на данный момент имеется 3 самых популярных реализации клиента ACME API:

  • Утилита Windows ACME Simple (WACS ) – утилита командной строки для интерактивного выпуска сертификата и привязки его к определенному сайту на вашем веб сервере IIS;
  • Модуль Powershell ACMESharp – библиотека Powershell с множеством команд для взаимодействия через ACME API с серверами Let’s Encrypt;
  • Certify – графический менеджер SSL сертификатов для Windows, позволяет интерактивно управления сертификатами через ACME API.

Клиент WACS для установки TLS сертификата Let’s Encrypt в IIS на Windows Server

Самый простой способ получить SSL сертификат от Let’s Encrypt - воспользоваться консольной утилитой Windows ACME Simple (WACS ) (ранее проект назывался LetsEncrypt -Win -Simple ) . Она представляет собой простой мастер, который позволяет выбрать один из сайтов, запущенных на IIS, и автоматически выпустить и привязать к нему SSL сертификат.

Итак, предположим у нас имеется веб сайт на IIS, развёрнутый под управлением Windows Server 2016. Наша задача, переключить его в HTTPS режим, установив SSL сертификат от Let’s Encrypt.

Скачайте последний релиз клиента WACS со страницы проекта на GitHub https://github.com/PKISharp/win-acme/releases (в моем случае это версия v2.0.10 – файл win-acme.v2.0.10.444.zip).

Распакуйте архив в каталог на сервере с IIS: c:\inetpub\letsencrypt

Откройте командную строку с правами администратора, перейдите в каталог c:\inetpub\ letsencrypt и запустите wacs .exe .

Запустится интерактивный мастер генерации сертификата Let’s Encrypt и привязки его к сайту IIS. Чтобы быстро создать новый сертификат выберите N : — Create new certificates (simple for IIS).

Затем нужно выбрать тип сертификата. В нашем примере нет необходимости использовать сертификат с псевдонимами (несколькими SAN — Subject Alternative Name), поэтому достаточно выбрать пункт 1. Single binding of an IIS site . Если вам нужен Wildcard-сертификат, выберите опцию 3.

Укажите ваш email, на который будут отправляться уведомления о проблемах с обновлением сертификата сайта и другие о повешения (можно указать несколько email через запятую). Осталось согласится с условиями использования и Windows ACME Simple подключится к серверам Let’s Encrypt и попытается автоматически сгенерировать новый SSL сертификат для вашего сайта.

Процесс генерации и установки SSL сертификата Let’s Encrypt для IIS полностью автоматизирован.

По умолчанию выполняется валидация домена в режиме http-01 validation (SelfHosting) . Для этого нужно, чтобы в DNS домена имелась запись, указывающая на ваш веб сервера. При запуске WACS в ручном режиме можно выбрать валидацию типа — 4 [ http -01] Create temporary application in IIS (recommended ). В этом случае на веб-сервере IIS будет создано небольшое приложение, через которое сервера Let’s Encrypt смогут провести валидацию.

Примечание . При выполнении TLS/HTTP проверки ваш сайт должен быть доступен снаружи по полному DNS имени по протоколам HTTP (80/TCP) и HTTPS (443/TCP).

Утилита WACS сохраняет закрытый ключ сертификата (*.pem), сам сертфикат и ряд других файлов в каталог C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple . Затем она в фоновом режиме установит сгенерированный SSL сертификат Let’s Encrypt и привяжет его к вашему сайту IIS. Если на сайте уже установлен SSL сертификат (например, ), он будет заменен новым.

В IIS Manager откройте меню Site Binding для вашего сайта и убедитесь, что для него используется сертификат, выданный Let’s Encrypt Authority X3 .

В хранилище сертификатов компьютера сертификат Let’s Encrypt для IIS вы можете найти в разделе Web Hosting -> Certificates.

Windows ACME Simple создает новое правило в планировщике заданий Windows (win-acme-renew (acme-v02.api.letsencrypt.org) ) для автоматического продления сертификата. Задание запускается каждый день, продление сертификата выполняется через 60 дней. Планировщик запускает команду:

C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"

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

Перенаправление трафика IIS сайта с HTTP на HTTPS адрес

Чтобы перенаправить весь входящий HTTP трафик на HTTPS сайт, нужно установить модуль Microsoft URL Rewrite Module (https://www.iis.net/downloads/microsoft/url-rewrite), и убедиться, что в настройках сайта не включена опция обязательного использования SSL (Require SSL). Осталось настроить редирект в файле web.config:













Также вы можете настроить перенаправление трафика через URL Rewrite через графический интерфейс IIS Manager. Выберите Sites -> yoursitename -> URL Rewrite.

Создайте новое правило Add Rule -> Blank rule.

Укажите имя правила и измените значения параметров:

  • Requested URL -> Matches the Pattern
  • Using -> Regular Expressions
  • Pattern -> (.*)

В блоке Conditions измените Logical Grouping -> Match All и нажмите Add. Укажите

  • Condition input -> {HTTPS}
  • Check if input string -> Matches the Pattern
  • Pattern -> ^OFF$

Теперь в блоке Action выберите:

  • Action Type -> Redirect
  • Redirect URL -> https://{HTTP_HOST}/{R:1}
  • Redirect type -> Permanent (301)

Откройте браузер и попробуйте открыть ваш сайт по HTTP адресу, вас должно автоматически перенаправить на HTTPS URL.

Использование сертификата Let’s Encrypt для Remote Desktop Services

Если вы используете для подключения внешних пользователей в корпоративную сеть шлюз Remote Desktop Gateway/ RD Web Access, вы можете использовать нормальный SSL сертификат Let’s Encrypt вместо обычного самоподписанного сертификата. Рассмотрим, как корректно установить сертификат Let’s Encrypt для зажиты служб Remote Desktop Services в Windows Server.

Если на Remote Desktop Gateway сервере поднята также роль RDSH, нужно запретить пользователям Read доступ к каталогу, в котором у вас хранится WACS (в моем примере это c:\inetpub\letsencrypt) и к каталогу с сертификатами сертификат Let’s Encrypt (C:\ProgramData\win-acme).

Затем на сервере RDP GW, запускаете wacs.exe, как описано выше, и вы выбираете нужный сайт IIS (обычно, Default Web Site). Let’s Encrypt выдает вам новый сертификат, который устанавливается для веб-сайта и в планировщике появляется задание на автоматические обновление сертификата.

Вы можете вручную экспортировать данный сертификат и привязать его к нужным службам RDS через SSL binding. Но вам придется выполнять эти действия вручную каждые 60 дней при перевыпуске сертификата Let’s Encrypt.

Нам нужен скрипт, который бы сразу после получения (продления) сертификата Let’s Encrypt применял бы его для RD Gateway.

В проекте win-acme есть готовый PowerShell скрипт ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts ) , который позволяет установить выбранный SSL сертификат для служб Remote Desktop. Главный недостаток скрипта – приходится вручную указывать отпечаток нового сертификата:
ImportRDGateway.ps1

Для автоматического получения отпечатка сертификата с указанного сайта IIS используйте доработанный скрипт (основан на стандартном ImportRDGateway.ps1).

Инструкция и модифицированный PowerShell скрипт присланы нашим читателем Антоном, за что посылаем ему лучи благодарности!

Вы можете запустить это скрипт вручную:

powershell -File ImportRDGateway_Cert_From_IIS.ps1

Если у вас RDS Gateway живет на стандартном IIS сайте «Default Web Site» с индексом 0, можете использовать скрипт без изменений.

Чтобы получить ID сайта в IIS, откройте консоль PowerShell и выполните:

Import-Module WebAdministration
Get-ChildItem IIS:Sites

Получите список вида:

В колонке ID указан индекс вашего сайта, отнимите от него единицу. Полученный индекс вашего сайта нужно указать вместо 0 в 27 строке скрипта PowerShell:

$NewCertThumbprint = (Get-ChildItem IIS:SSLBindings).Thumbprint

Теперь откройте задание планировщика win-acme-renew (acme-v02.api.letsencrypt.org) и на вкладке Action добавьте новое задание, которое запускает скрипт ImportRDGateway_Cert_From_IIS.ps1 после обновления сертификата.

Чтобы не менять разрешения на выполнение скриптов PowerShell, вы можете вызывать скрипт командой:

PowerShell.exe -ExecutionPolicy Bypass -File c:\inetpub\letsencrypt\ImportRDGateway_Cert_From_IIS.ps1

Теперь скрипт привязки SSL сертификата к службам RDS будет выполнятся сразу после продления сертификата Let’s Encrypt. При этом автоматически перезапускается служба RD Gateway командой:

При перезапуске службы TSGateway все текущие сессии пользователей разрываются, поэтому желательно изменить периодичность запуска задания обновления сертфиката на 1 раз в 60 дней.

Отметим, что сертификаты Let’s Encrypt в настоящий момент широко используются на сайтах многих крупных компаний и им доверяют все браузеры. Надеюсь, что судьба бесплатного центра сертификации Let’s Encrypt не постигнет участь WoSign и StartCom.

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

Список поддерживающих Let’s Encrypt хостинговых контор размещён на сайте проекта . Список не исчерпывающий и ориентирован на западного клиента — даже если вашего хостинга в списке нет, всё равно стоит спросить.

Let’s Encrypt от хостинг-провайдеров

Мой блог работает на — и у них поддержка Let’s Encrypt есть, хоть и не заявлена ни в вышеуказанном списке, ни на сайте самого «Фоззи». Более того, в январе текущего года провайдер взял и установил автоматически продлевающиеся SSL-сертификаты на все домены и поддомены своих клиентов, за что ему большое спасибо — мне осталось только настроить переадресацию с HTTP на HTTPS-урлы.

Когда трёхлетний сертификат от потерявших доверие китайцев из WoSign с выходом 57-й версии Google Chrome , я удалил его и попросил сотрудников Fozzy установить для блога Let’s Encrypt, что тут же было сделано.

Более того, сайт курумканской районной администрации работает на «1С-Битрикс» и очень посредственном ростелекомовском хостинге, который также поддерживает Let’s Encrypt. Установить автоматически продлевающийся SSL-сертификат на хостинге «Ростелеком» можно самостоятельно: зайдите в ISP Manager, там выберите пункт «WWW», затем в выпавшем меню «SSL-сертификаты», нажмите кнопку «Создать» и выберите нужный домен. Всё.

Что делать, если хостинг не желает устанавливать Let’s Encrypt и пытается впарить платный сертификат? Если у вас WordPress-сайт, вы не хотите переезжать на какой-нибудь Fozzy и ваш нехороший хостинг предоставляет доступ к управлению сервером через сPanel (очень часто встречающееся решение), я знаю, как эту проблему решить без сложных манипуляций.

WordPress-плагин WP Encrypt

Простой в использовании рабочий плагин , который, правда, давно не обновлялся. Не далее чем пару дней назад (в 20-х числах марта 2017 года) я проверил его работу на другом домене и всё получилось.

Схема работы такова: устанавливаем и активируем плагин, переходим в его настройки. Там нужно как угодно «обозвать» ваш сайт и выбрать для него наиболее подходящую страну. Затем внизу страницы настроек нажать кнопку «Register Account», буквально в один-два клика зарегистрироваться и затем нажать появившуюся взамен такую же синюю кнопку «Generate Sertificate».

После мгновенной генерации SSL-сертификата вам будут указаны пути на веб-сервере, куда были сохранены файлы сертификата и ключей (нас интересуют cert.pem и private.pem ).

Не забудьте в настройках плагина отметить чекбокс «автоматически обновлять сертификат» или «уведомлять об истечении сертификата за столько-то дней», или и то, и другое. За работоспособность автопродления не ручаюсь, наверняка придётся обновлять сертификат вручную каждые три месяца, и это главный минус Let’s Encrypt и описанного способа его использования в целом.

Будьте так добры, попробуйте и где-нибудь в комментариях отпишитесь, работает ли в плагине автопродление. А мы пока перейдём в cPanel.

Установка SSL-сертификата в cPanel

В «Диспетчере файлов» нужно найти папку, в которую плагин сложил файлы сертификата. Обычно путь выглядит так: «letsencrypt→live→„ваш домен“». Теперь по клику правой кнопкой мыши открываем файл cert.pem (лучше открывать файлы сертификата для чтения, опция «View») и целиком копируем его содержимое.

Возвращаемся в cPanel, там в разделе «Безопасность» есть пункт «SSL/TLS». В нём следует кликнуть по ссылке «Установка и управление SSL для сайта (HTTPS)», внизу страницы под заголовком «Установить сайт с SSL-шифрованием» выбрать домен, для которого был сгенерирован сертификат, и в поле «Сертификат: (CRT)» вставить содержимое файла cert.pem.

Затем в диспетчере файлов нужно аналогичным образом обработать файл private.pem и вставить его содержимое в следующее «окошко» установки сертификата «Закрытый ключ (KEY)». Поле «Пакет центра сертификации: (CABUNDLE)» можно оставить пустым.

Если вы всё сделали правильно, сервер должен сообщить, что введённые данные корректны, и можно нажимать кнопку «Установить сертификат». Если в шифрах есть ошибки, появится соответствующее предупреждение. Вот, в общем-то, и всё, что нужно знать об установке SSL-сертификата на Apacheподобные серверы с помощью cPanel.

Двухминутная настройка HTTPS-everywhere на WordPress-сайте

На разных хороших сайтах о переезде на HTTPS много текста написано, какие-то сложные манипуляции с базами данных и т. д., но в наше время всеобщего упрощения хочется чего-то ненапряжного и быстрого.

Для этого в первую очередь нужно перейти в настройки WordPress, там в поля «Адрес WordPress (URL)» и «Адрес сайта (URL)» вместо имеющегося вбить адрес вашего сайта с префиксом https://. Внимание: делайте это только после того, как установили сертификат на сервер, иначе после сохранения настроек сайт перестанет открываться!

Далее устанавливаем два плагина — WP Force SSL и Easy HTTPS Redirection . После их активации всё содержимое сайта должно перейти на HTTPS автоматически. Если в результате этих простых манипуляций видите в адресной строке зелёный замочек — значит, всё получилось. Поздравляю!

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

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

Стоит отметить, что сейчас проект находится на стадии бета-тестирования, поэтому могут возникать ошибки в работе их скриптов.

Весь процесс работы с сервисом происходит с помощью python скрипта letsencrypt , на текущий момент не для всех дистрибутивов linux существуют пакеты letsencrypt, поэтому официальная документация рекомендует ставить его предварительно склонировав git репозиторий из github.

$ git clone https://github.com/letsencrypt/letsencrypt $ cd letsencrypt $ ./letsencrypt-auto --help

letsencrypt-auto это скрипт-обёртка вокруг letsencrypt , автоматизирующий процесс развёртывания. Проще говоря, скрипт скачивает все необходимые зависимости, поднимает отдельное виртуальное окружения для Python, используя virtualenv, устанавливая в него необходимые python-модули при этом не засоряя системный питон. Стоит отметить, что для корректной работы скрипта необходимы права на запись в системные директории (sudo).

Так как скрипт призван максимально упростить работу по установке сертификатов безопасности, он поддерживает систему плагинов. Например, в стандартной поставке имеется плагин для работы с Apache (полноценно функционирующий) и nginx (пока только на экспериментальной стадии).

Установка SSL сертификата для Apache

Мой блог работает на связке LAMP, т.е. Linux, Apache, MySQL и PHP. Разработчики Let"s Encrypt постарались на славу и упростили настройку сертификата для Apache до уровня "проще некуда". Весь процесс сводится к следующим шагам:

$ ./letsencrypt-auto --apache -d mydomain.com

После ввода этой команды появится окно, где необходимо будет заполнить пару деталей, включая электронный адрес владельца. Остальное скрипт сделает за вас:

  • Проверит принадлежность домена
  • Выпустит необходимый сертификат сроком на 90 дней
  • Внесёт все необходимые настройки для веб-сервера Apache

После всех этих манипуляций мне только оставалось настроить 301 редирект (Moved Permanently) с http на https и перезагрузить веб-сервер.

ServerName сайт Redirect permanent / https://сайт/

С настройкой nginx дела обстоят хуже, в первую очередь потому что этот плагин пока не работает в связке с letsencrypt-auto. Если есть необходимость настройки SSL сертификатов для nginx (а она разумеется есть, nginx как ни крути один из самых популярных веб-серверов), то я бы порекомендовал сделать это вручную. О том как, читайте ниже.

Настройка SSL сертификатов для других веб-серверов

В поставке letsencrypt помимо плагина для работы с Apache имеется ряд других, а именно:

  • standalone
  • webroot
  • manual
  • nginx

Standalone

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

$ ./letsencrypt-auto certonly --standalone -d mydomain.com

Webroot

Данная опция подходит тем, кого не устраивает standalone. При указании ключа --webroot необходимо также будет указать и директорию, где располагаются файлы, которые обрабатывает веб-сервер.

$ ./letsencrypt-auto certonly --webroot -webroot-path /var/www/mydomain/

При работе с данной опцией необходимо настроить веб-сервер на чтение файлов соответствующим образом.

Manual

Из названия можно догадаться, что настройка и установка SSL сертификата будет проводиться вручную:-) Пожалуй, сейчас это наиболее удобный вариант настройки сертификата для nginx ввиду "сыроватости" letsencrypt nginx плагина.

$ ./letsencrypt-auto certonly --manual -d mydomain.com

После ввода этой команды вам необходимо будет самостоятельно провести манипуляции по подтверждению домена, разместив файл с определённым содержимым в нужной директории на сайте. Когда процедура создания сертификата закончится, все необходимые файлы будут лежать по следующему пути /etc/letsencrypt/live/$domain . В подкаталоге live находятся все самые актуальные сертификаты и ключи, тогда как keys и archive содержат все ранее созданные файлы.

Настройка SSL в Nginx

Итак, если процедура с созданием сертификатов в manual режиме прошла успешно, то в вышеупомянутой директории мы найдем все необходимые файлы для настройки безопасного соединения.

  • privkey.pem - наш приватный ключ
  • cert.pem - сертификат сервера
  • chain.pem - корневой (root) и промежуточный (intermediate)
  • fullchain.pem - все необходимые нам сертификаты для настройки веб-сервера.

Как же в данном случае будет выглядеть настройка Nginx?

Server { listen 80; listen 443 ssl; server_name mydomain.com; ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; ...

Ребята из letsencrypt не советуют перемещать файлы, т.к. при продлении сертификата старые будут автоматически заменены новыми по тем же путям, лучше в этом случае создать символически ссылки.

Продление SSL сертификата

Ранее я уже упоминал о том, что бесплатные SSL сертификаты "живут" только 90 дней, поэтому после их истечения необходимо будет запускать процедуру продления, благо это тоже бесплатно:-)

Что же из себя представляет процесс продления?

Как утверждают в Let"s Encrypt, перед истечением, на почту, указанную при создании, приходит соответствующее письмо-уведомление о том, что пора бы продлить сертификат. Чтобы это сделать вручную достаточно запустить команду:

$ ./letsencrypt-auto

И следовать инструкциям на экране. Автоматическое же продление можно настроить используя конфигурационный файл и обычный crontab. Желательно настроить крон таким образом, чтобы продление происходило не чаще 1 раза в месяц.

Если вы работаете из под Windows, то letsencrypt можно развернуть, используя или Docker. Правда в этом случае для правильной настройки веб-сервера необходимо будет вручную переместить все файлы на сервер.

Наличие SSL - больше не прихоть крупных компаний, а обязательное требование для всех. Без SSL сайты теряют позиции в поисковой выдаче, посетителей и деньги. Let’s Encrypt в панели ISPmanager позволяет выпускать бесплатные SSL - как обычные, так и Wildcard. Запрос и установка происходят автоматически и не требуют технических навыков.

Зачем нужен SSL-сертификат

Когда вы заходите на сайт, вы подключаетесь к серверу, на котором он расположен. Если подключение не защищено, хакеры могут украсть логины, пароли и номера банковских карт. SSL-сертификат нужен, чтобы сделать подключение защищенным. С ним данные, которые вы вводите, шифруются. Даже если хакеры их перехватят, они не смогут их расшифровать.

С 2017 года поисковые роботы Google отмечают сайты без SSL как небезопасные и понижают их позиции в поисковой выдаче. Google Chrome и Mozilla Firefox маркируют HTTP сайты как ненадежные. Так браузеры предупреждают пользователей, что мошенники могут украсть личные данные и деньги.

Переведите сайт на HTTPS, чтобы усилить позиции в поисковых системах и вызывать доверие посетителей. С модулем Let’s Encrypt для этого не нужны ни деньги, ни технические навыки.

Кому подойдет Let’s Encrypt

Let’s Encrypt выпускает SSL-сертификаты начального уровня с проверкой домена (DV). Поэтому Let’s Encrypt отлично подходит для небольших онлайн-проектов, где не требуется строгая гарантия безопасности: блогов, хобби-сайтов, сайтов-визиток. Зеленого замочка в строке браузера достаточно, если посетители не вводят логины и пароли и не совершают покупки.

DV-сертификат только подтверждает, что домен действительно принадлежит вам. Посетители сайта не столкнутся с предупреждениями браузера о посещении непроверенного сайта. Мошенники не перехватят информацию пользователей, так как сертификат обеспечивает безопасное HTTPS-соединение.

Важно! Мы не рекомендуем использовать DV-сертификат на сайтах интернет-магазинов и корпоративных порталов, где требуется более высокий уровень доверия пользователей. При выпуске SSL с проверкой домена центр сертификации не проверяет законность бизнеса. Поэтому такой сертификат не гарантирует посетителям, что владельцу домена можно доверять логины, пароли и номера банковских карт.

Как установить Let"s Encrypt

Шаг 1.

Чтобы установить Let’s Encrypt, ISPmanager должен быть не ниже версии 5.65.

  • Откройте ISPmanager,
  • Из-под учетной записи root перейдите в раздел Интеграция → Модули ;
  • Установите модуль Let’s Encrypt.

Теперь вы можете получить действующий самообновляющийся SSL-сертификат для своего домена. Для этого понадобится пользователь с правом пользоваться SSL и действующее доменное имя.

Шаг 2.

После установки в разделе Настройки web-сервера → SSL-сертификаты нажмите на кнопку Let"s Encrypt , чтобы получить сертификат. Подробнее о создании сертификата в .

Сертификат генерируется успешно, если абсолютно все указанные домены и псевдонимы (алиасы) открываются с сервера. Если даже 1 из них не откроется, не удастся выпустить сертификат.

О проекте Let’s Encrypt

Let’s Encrypt - некоммерческий доверенный центр сертификации. Он отличается от других тем, что выдает SSL-сертификаты бесплатно. При этом процесс выпуска полностью автоматизирован.

Проект создан в 2014 году, чтобы большая часть интернет-сайтов смогла перейти к безопасному соединению по HTTPS. Среди его основных спонсоров ведущие технологические компании мира: Mozilla, Google Chrome, Cisco, Facebook. Партнерами Let’s Encrypt являются центр сертификации IdenTrust, University of Michigan, Stanford Law School, Linux Foundation.

Основные принципы Let’s Encrypt:

  • Безвозмездность. Владелец любого домена может получить доверенный SSL бесплатно;
  • Автоматизация. Let’s Encrypt автоматически запрашивает, конфигурирует и обновляет сертификаты;
  • Безопасность. Let’s Encrypt продвигает лучшие практики безопасности как на стороне центра сертификации, так и на стороне веб-сайтов.

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

  1. Можно заказать только 5 сертификатов в неделю на домен первого уровня и его поддомены.
  2. Срок действия Let’s Encrypt сертификата - 3 месяца. Каждые 3 месяца ISPmanager автоматически перевыпускает сертификаты.
  3. Let’s Encrypt не предоставляет гарантий и не выплачивает компенсацию в случае утечки данных, так как является некоммерческой организацией.

Полный список ограничений