Ещё один простой блог в интернете, одного из жителей Сызрани, который считает себя дизайнером, WEB-мастером и фотографом-любителем

просто блог

QR CODE для записиQR CODE для записи “Получение ключей SSL-сертификата Let’s Encrypt через certbot и DNS для шаред-хостинга”

Получение ключей SSL-сертификата Let’s Encrypt через certbot и DNS для шаред-хостинга

В настоящее время существует куча инструкций по получение SSL-сертификата, а многие хостинги предоставляют эти возможности в один клик. Но у меня оказался исключительный случай. ISP не хотела получать сертификат в один клик. Имеющиеся инструкции по получению SSL-сертификата от Let’s Encrypt через файл не работали, потому что на хостинге ограничен доступ к папке well-known/acme-challenge/. Поэтому было необходимо найти решение получения через DNS, ведь это доступно Let’s Encrypt. А ещё с этого года появится возможность получать сертификат для поддоменов по маске, а это доступно будет только через DNS.

Ниже инструкция актуальна для людей с Unix-подобными OS и установленным GIT. Если вы не знаете что такое GIT, то, вероятно, эта статья не для вас.

Внимание! Если у вас будут появляться ошибки
certbot: error: unrecognized arguments: ‑‑manual ‑‑preferred-challenges dns
— удалите дефисы и наберите их вручную. Движок сайта их ломает!

Первым делом надо клонировать себе с GIT пакет certbot, любезно предоставленный EFF. Открываем консоль и вставляем:

git clone https://github.com/certbot/certbot

Далее запускаем его:
./certbot-auto certonly --manual --preferred-challenges dns
certonly — только получение, без установки;
manual — для ручного создания (на самом деле не это значит, но смысл тот же);
dns — указываем, что через DNS записи.

Далее следуем инструкциям certbot’а:

  • Он попросит указать домены:

    Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’ to cancel):

    Указывайте необходимые доменны и поддомены через пробел. Разрешено указывать до 100 имён.

  • Далее он просит опубликовать ваш IP в своей базе. Необходимо набрать Y, иначе он не даст продолжить.

    Are you OK with your IP being logged?
    (Y)es/(N)o:

  • Далее самое главное и мучительное — указать для каждого указанного ранее домена новую текстовую (TXT) запись на своём DNS сервере.

    Please deploy a DNS TXT record under the name
    _acme-challenge.ВАШ.ДОМЕН with the following value:
    УНИКАЛЬНЫЙ КОД
    Before continuing, verify the record is deployed.
    Press Enter to Continue

    У регистратора r01.ru выглядит это так:
    Добавление TXT записи в DNS r01.ru
    Добавленные TXT записи в DNS r01.ru
    После того, как добавите последний домен (считайте!) — не жмите ENTER, необходимо подождать некоторое время, пока новые записи вступят в силу. У регистратора r01 предположительно может занять до 40 минут. Поэтому 1-2 час лучше подождать. И только потом нажать ENTER, иначе можете увидеть вот такую ошибку:
    failed authorization
    Ничего страшного в этом нет. Только вот после этого вам придётся заново прописывать (редактировать имеющиеся, не надо новые создавать) TXT записи и снова ждать. И, говорят, что количество попыток в сутки/неделю ограничено.

Если вы всё правильно сделали, то вы увидите надпись «Cleaning up challenges». Поздравляю, вы получили сертификат на 3 месяца. На Linux они лежат в папке /etc/letsencrypt/live/ВАШДОМЕН/. Расположение сертификатов должно появиться в консоли.

Вся процедура выглядит примерно так:
Скрин создания сертификата через certbot

Заходим в папку с правами админа (я делаю это через MC) и видим 4 наших файла. Далее я их вставил в ISP: в поле «SSL-сертификат» текст из cert.pem, в «Ключ SSL-сертификата» — privkey.pem и «Цепочка SSL-сертификатов» — fullchain.pem.

Не забудьте, что сертификат Let’s Encrypt действителен только 4 месяца! После этого его надо продлевать! Дата окончания написана в последних строчках, в случае удачного создания.

UPDATE 1 (02.06.2018)

К сожалению на данный момент продлить аттестат у меня не получилось и я его пересоздаю. Предположительная проблема — динамический IP адрес.

UPDATE 2 (02.06.2018)

Команда, чтобы не вводить домены отдельно
./certbot-auto certonly --manual --preferred-challenges dns -d Ваши,домены,через,запятую

  1. BaNru # link

    На каком этапе возникает проблема?

  2. Ruslan # link

    Хорошая статья, если сайт находится на windows нужно конвертировать сертификат с .pem в .ptx формат
    openssl pkcs12 -export -in «patch to file publik key .pem» -inkey «patch to file private key .pem» -out «patch to file with the converted certificate .pfx»

Оставить комментарий

В блоге включена ручная модерация комментариев. Нет смысла повторно отправлять комментарий.
Поля отмеченный звездочкой * обязательны к заполнению

Перед отправкой формы: