Меняем сертификат Let's Encrypt на сертификат от Digicert (Cloudflare) бесплатно, одним api-запросом
Yellow WebВведение
Чего хотим добиться? БЫЛО:
![](/file/149f330625af4dfd62e87.png)
СТАЛО:
![](/file/b419a92efed931bede532.png)
Зачем? Решайте сами, а моё дело показать, как с этим работать. Для затравки просто покажу вам, сколько стоят нормальные сертификаты DigiCert.
![](/file/a55625030bdca023a61cc.png)
Проблема в том, что через интерфейс клауда сделать такой мув невозможно, придётся слать API-запрос. Поэтому давайте для начала создадим API-ключ.
Создание подходящего API-ключа для CloudFlare
Идём в свой профиль, тыкаем API Tokens и Create Token👇
![](/file/734591346ff3672e7166a.png)
Задаём любое название в Token name, выбираем в разделе Permissions: Zone, SSL and Certificates, Edit.
![](/file/7128c0512deef248a22ee.png)
Получаем ключ и сохраняем его себе куда-нибудь в текстовый файлик.
Также для составления API-запроса нам понадобится идентификатор домена, для которого мы хотим выпустить сертификат. Находится этот идентификатор (он называется ZoneId) вот тут:
![](/file/793f90a889c589dc7bcf8.png)
Выполняем запрос
Чтобы не ставить себе на комп какой-либо софт и не пугать вас командной строкой, воспользуемся сервисом 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> на настоящие значения и запускаем запрос.
Должны получить примерно вот такой результат:
![](/file/d5d69b0f9d53fdfd7c649.png)
Если запрос долго висит и не отвечает, то это тупит слегка апи клауда, нужно подождать и потом проверить, сработал наш запрос или нет. Для этого пишем практически всё тоже самое, только вместо 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. Мы должны увидеть следующую картину:
1541×762px
122.1 kB
![](/file/d6935ba58921a9e4de1fe.png)
Поздравляю, у вас теперь не какой-то там халявный Let's Encrypt, а понтовый сертификат, который не стыдно пацанам показать! 🙃
А на связи был Жёлтый Веб, лейте в плюс, гайз!