Получение бесплатного SSL сертификата от Let’s Encrypt
Получение и продление бесплатного сертификата от Let’s Encrypt.
В связи с недавними блокировками сертификатов (которые раздавались бесплатно, сроком от 1 года до 3 лет) от StartCom и WoSign всеми современными браузерами, встала задача – получить и продлить в автоматическом режиме SSL сертификат от единственного оставшегося центра сертификации Let’s Encrypt, который раздает бесплатные сертификаты сроком на 90 дней.
Прежде чем начать
- Убедитесь, что Ваш хостинг-провайдер поддерживает установку SSL сертификатов
- Убедитесь, что Ваш хостинг-провайдер дает доступ на сервер по SSH
ВАЖНО! Для подтверждения владения доменом и успешной генерации сертификата, нужно генерировать сертификаты с сервера куда ссылается A-запись.
Шаг 1 – активируем SSH доступ
- SSH доступ необходим для генерации SSL сертификата. На примере хостинга от компании Hostinger, в панели управления перейдите в раздел SSH
- Включение SSH: нажмите на кнопку Disabled что бы поменять статус на Enabled. Затем нажмите на кнопку Update, что бы сохранить изменения.
- Страница обновится, и вы увидите информацию, необходимую для подключения через SSH (там же ссылка на SSH клиент Putty).
Запишите ее, поскольку она понадобится вам в следующем шаге.
Шаг 2 – Установка клиента ACME и Composer
Для создания SSL-сертификата Let’s Encrypt, мы будем использовать ACME-клиент (Automated Certificate Management Environment) и написанный на PHP композер.
Прежде всего, вам нужно будет подключиться к вашей учетной записи хостинга через SSH и загрузить все необходимые компоненты. Если вы используете macOS или Linux, вы можете использовать терминал для подключения через SSH, пользователи Windows могут воспользоваться клиентом PuttySSH.
- Подключитесь к учетной записи хостинга с помощью SSH.
В нашем примере это было бы так:
ssh x123011738@31.170.164.22 -p 65002
- Клонируйте к себе клиент ACME из репозитория github. Клонирование можно выполнить следующей командой:
git clone https://github.com/kelunik/acme-client
- Переходим в директорию с ACME клиентом:
cd acme-client
- Скачиваем и устанавливаем композер:
php -r "copy('https://getcomposer.org/installer','composer-setup.php');"; php composer-setup.php; php -r "unlink('composer-setup.php');"; php composer.phar install --no-dev
Шаг 3 – Генерация SSL сертификата
После того, как вы загрузили и установили ACME-клиент и композер, вы можете создать бесплатный SSL от Let’s Encrypt.
Во-первых, зарегистрируйте учетную запись, выполнив следующую команду:
php bin/acme setup --server letsencrypt --email your@email.com
Обратите внимание, что вам нужно изменить адрес электронной почты your@email.com на свой.
Процесс создания сертификата SSL довольно прост. Выполните следующую команду:
php bin/acme issue --domains yourdomain.com --path /home/x123011738/public_html --server letsencrypt
Измените yourdomain.com на ваше реальное доменное имя, и x123011738 на ваше реальное имя пользователя.
Для нескольких доменов, необходимо перечислять их через двоеточие:
php bin/acme issue --domains yourdomain.com:www.yourdomain.com --path /home/x123011738/public_html --server letsencrypt
Если сертификат был успешно выдан, вы увидите следующее сообщение:
Requesting certificate ...
Successfully issued certificate.
See /home/x123011738/acme-client/data/certs/acme-v01.api.letsencrypt.org.directory/yourdomain.com
Клиент ACME сгенерировал сертификаты и файлы закрытого ключа. К сожалению, установка не может быть выполнена через SSH из-за ограничений безопасности. Поэтому сначала вам нужно вручную скопировать файлы сертификатов и секретных ключей на свой компьютер.
Это можно сделать с помощью моей инструкции и скачать файл через SSH, либо с помощью FTP клиента: просто скачайте их, либо методом copy/paste.
Перейдите в каталог, в котором хранятся закрытый ключ и файлы сертификатов:
cd /home/x123011738/acme-client/data/certs/acme-v01.api.letsencrypt.org.directory/yourdomain.com
Используйте команду cat
, чтобы просмотреть содержимое файла fullchain.pem
:
cat fullchain.pem
Скопируйте часть, выделенную красным цветом, и сохраните ее в текстовом файле на вашем компьютере. Назовите текстовый файл certificate.txt
Сделайте тоже самое с закрытым ключом:
cat key.pem
Скопируйте закрытый ключ (как показано на скриншоте) и сохраните его в текстовом файле. Назовите его privatekey.txt
Самая сложная часть закончилась. Теперь вы можете установить SSL-сертификат.
Шаг 4 – Установка сертификата через панель управления
На этом этапе у вас уже должен быть сертификат и закрытый ключ, сохраненные на вашем компьютере. Последним шагом является установка SSL-сертификата в вашей учетной записи хостинга. Это можно сделать через раздел SSL:
- Перейдите в раздел SSL.
- Выберите домен из раскрывающегося списка, для которого вы хотите установить сертификат SSL.
- Вставьте содержимое файла certificate.txt в сертификат: (CRT) и содержимое файла privatekey.txt в поле закрытый ключ: (KEY). После завершения нажмите кнопку «Установить».
- После завершении установки вы увидите сообщение, что все успешно установилось.
Вот и все, вы успешно установили бесплатный SSL от Let’s Encrypt на виртуальный хостинг. Теперь ваше доменное имя будет работать по протоколу HTTPS.
Шаг 5 – Проверка даты истечения срока действия и автопродление SSL-сертификата
Теперь переходим к самому интересному.
Срок действия SSL-сертификатов 90 дней. Как быть? Или надо помнить об этом, и каждый раз забывать продлить сертификат?
Нет. Все проще. Идем дальше.
Вы можете проверить срок его действия через SSH, используя следующую команду:
php acme-client/bin/acme check --name yourdomain.com --server letsencrypt
Вы можете автоматически продлить SSL сертификат с помощью cron. Например, чтобы автоматически обновить сертификат SSL, вы можете задать задание cron для запуска следующей команды через месяц:
php acme-client/bin/acme issue --domains yourdomain.com --path /home/x123011738/public_html --server letsencrypt
На Hostinger задание cron может быть создано в разделе Расширенные Cron Задачи. Вы можете использовать следующие настройки:
- Минуты – :00 top of the hour (0)
- Час(ы) – 12 a.m. Midnight (0)
- Дни – Every day (*)
- Месяц – Every other month (*/2)
- Будни – Every weekday (*)
Подведение итога
Сертификаты SSL от Let’s Encrypt прекрасно подходят, если вы хотите использовать свои сайты через HTTPS, но не хотите платить за них.
Это руководство предназначено для того, чтобы показать вам обходное решение (после бана StartCom и WoSign), которое вы можете использовать для установки бесплатного SSL от Let’s Encrypt на вашем хостинге.
Надеюсь, данная статья вам пригодится.
Удачи!
P.S. В связи с тем что сертификаты и ключ на хостинге от Hostinger необходимо копировать-вставлять вручную, в автоматическом режиме режиме автообновление не возможно. Хотя сами сертификаты корректно обновляются через клиент ACME.
Оцените статью или поделитесь ей в соцсетях:
Рекомендуемые статьи:
Комментарии
Делаю по инструкции, но после ввода команды
php bin/acme setup —server letsencrypt —email your@email.com(с моей почтой)
выдается следующее сообщение
Parse error: syntax error, unexpected „[“ in /home/u54352/tdpresto.ru/www/acme-client/bin/acme on line 42
там и правда cтоит [ но чем мешает не понятно