Меняем сертификат Let's Encrypt на сертификат от Digicert (Cloudflare) бесплатно, одним api-запросом

Меняем сертификат Let's Encrypt на сертификат от Digicert (Cloudflare) бесплатно, одним api-запросом

Yellow Web

Введение

Чего хотим добиться? БЫЛО:

Сертификат Let's Encrypt

СТАЛО:

Сертификат от Cloudflare (DigiCert)

Зачем? Решайте сами, а моё дело показать, как с этим работать. Для затравки просто покажу вам, сколько стоят нормальные сертификаты DigiCert.

Проблема в том, что через интерфейс клауда сделать такой мув невозможно, придётся слать API-запрос. Поэтому давайте для начала создадим API-ключ.

Создание подходящего API-ключа для CloudFlare

Идём в свой профиль, тыкаем API Tokens и Create Token👇

Шаги 1-2-3

Задаём любое название в Token name, выбираем в разделе Permissions: Zone, SSL and Certificates, Edit.

Шаги 4-5-6

Получаем ключ и сохраняем его себе куда-нибудь в текстовый файлик.

Также для составления API-запроса нам понадобится идентификатор домена, для которого мы хотим выпустить сертификат. Находится этот идентификатор (он называется ZoneId) вот тут:

Zone ID

Выполняем запрос

Чтобы не ставить себе на комп какой-либо софт и не пугать вас командной строкой, воспользуемся сервисом Reqbin, который позволит отправить нам запрос прямо "из браузера".

Копи-пейстим туда следующее:

curl --location --request PATCH 'https://api.cloudflare.com/client/v4/zones/<Zone ID>/ssl/universal/settings' \
--header 'Authorization: Bearer <API Token>' \
--header 'Content-Type: application/json' \
--data '{"certificate_authority": "digicert"}'

Заменяем <Zone ID> и <API Token> на настоящие значения и запускаем запрос.

Должны получить примерно вот такой результат:

Результат изменения

Если запрос долго висит и не отвечает, то это тупит слегка апи клауда, нужно подождать и потом проверить, сработал наш запрос или нет. Для этого пишем практически всё тоже самое, только вместо PATCH используем GET

curl --location --request GET 'https://api.cloudflare.com/client/v4/zones/<Zone ID>/ssl/universal/settings' \
--header 'Authorization: Bearer <API Token>' \
--header 'Content-Type: application/json'

Если видим, что написано не digicert, а letsencrypt или google, то отправляем тот запрос что был первым ещё раз.

Проверяем

Как только запрос отработал, можно зайти в раздел Edge Certificates. Мы должны увидеть следующую картину:

d6935ba58921a9e4de1fe.png
1541×762px
122.1 kB
В результате у нас нужный сертификат

Поздравляю, у вас теперь не какой-то там халявный Let's Encrypt, а понтовый сертификат, который не стыдно пацанам показать! 🙃

А на связи был Жёлтый Веб, лейте в плюс, гайз!








Report Page