Поиск:

Поиск по:

Результаты поиска по запросу «»
Найдено совпадений
По вашему запросу ничего не найдено
.
Показать еще

Автоматизация обновления SSL-сертификата через API NetAngels

Рассмотрим процесс автоматизации обновления SSL-сертификата на VDS. VDS может быть создан на основе разных образов:

  • Если ваш VDS создан с образом Панель Netangels, то SSL сертификаты на нем автоматически обновляются. Рекомендации из этой статьи вам не пригодятся.

  • Для все остальных образов обновлять SSL сертификаты требуется вручную.

Если вы используете бесплатный сертификат Let’s Encrypt, то более простым вариантом будет настроить продление через certbot или через dehydrated.

Заказать сертификат вы можете в панели управления хостингом, в разделе "Сервисы / SSL-сертификаты". Для заказа доступны как платные SSL сертификаты от авторизованных центров сертификации, так и бесплатные от Let’s Encrypt.

В обоих случаях после выпуска сертификата его потребуется установить на сервер, как это сделать, рассказывается в статье "Как подключить SSL-сертификат для сайта на облачном VDS с панелью управления NetAngels"

Для реализации поставленной задачи будем работать в Bash и использовать публичный API. Для этого в первую очередь понадобится получить API-ключ пользователя в панели управления хостингом.

Имея на руках API-ключ, вы сможете сгенерировать токен, используя POST-запрос по адресу https://panel.netangels.ru/api/gateway/token/. В запросе необходимо передать параметр api_key.

curl -s -k -X POST -d "api_key=0va4StAikXDoQzV21Sbuq7zRGeKnFOSfFosh92QlkKLeQeWxKC1xfjud"  "https://panel.netangels.ru/api/gateway/token/"

В результате ответа сервера вы получите JSON с полем token или 403ю ошибку. Во втором случае, пожалуйста, проверьте запрос на его корректность.

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.gQMT5BAT0Njntrt_6bi-iMITMMdMFxST0B23ClnTBiw"
}

Обращаем ваше внимание, что токен действителен всего сутки, поэтому его необходимо обновлять каждый раз, когда вы работаете с API.

Внимание! Дальнейший доступ к API всегда требует заголовок для авторизации: 'Authorization': Bearer {token}'

Заведем переменную для дальнейшего удобства:

token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.gQMT5BAT0Njntrt_6bi-iMITMMdMFxST0B23ClnTBiw"

Отправим GET-запрос по адресу https://api-ms.netangels.ru/api/v1/certificates/find для поиска сертификатов для нашего домена. В запросе необходимо использовать параметр domains.

curl -s -k -H "Authorization: Bearer ${token}" -X GET "https://api-ms.netangels.ru/api/v1/certificates/find/?domains=mydomain.ru"

Результатом сервер вернет JSON с масивом entities, содержащий все найденые сертификаты.

{
  "entities": [
    {
      "created": "2018-03-19 09:28:26",
      "domains": [
        "mydomain.ru",
        "www.mydomain.ru"
      ],
      "extension_period": 1,
      "id": 3244,
      "is_renewal": true,
      "name": "mydomain.ru",
      "not_after": "2019-03-19 23:59:59",
      "not_before": "2018-03-19 00:00:00",
      "publisher": "LetsEncrypt",
      "state": "Issued",
      "updated": "2018-03-19 09:49:33"
    }
  ]
}

Следующим пунктом будет скачивание сертификата, используя GET-запрос по адресу https://api-ms.netangels.ru/api/v1/certificates/<id>/download/, где <id> - id сертификата из предыдущего ответа. В качестве параметров GET-запроса можно использовать name - название архива и префиксов файлов в нем, а так же type - tar, targz, zip для формата скачиваемого архива

curl -s -k -H "Authorization: Bearer ${token}" -X GET \
"https://api-ms.netangels.ru/api/v1/certificates/3244/download/?name=mydomain.ru&type=tar" -o mydomain.ru.tar

Скачав тем самым архив на сервер, его достаточно распаковать и заменить старый сертификат на новый.

Внимание, путь распаковки архива в вашем случае может отличаться, скорректируйте его.

tar -xf mydomain.ru.tar -C /etc/nginx/ssl/mydomain.ru

После чего не забудьте перезапустить web-сервер.

nginx -t && nginx -s reload

Рано или поздно сертификат истечет, поэтому стоит предусмотреть его продление. Если вы решите автоматизировать выпуск, то вам пригодится вызов API.

Наша автоматика для продления SSL-сертификата срабатывает за 3 дня до даты окончания действия сертификата. Если продлить не получилось, то потом за два дня и потом за 1 день до окончания действия сертификата.

Имея навыки программирования вы теперь можете скомпоновать все команды в один небольшой скрипт, используя любимый язык программирования, и установить его исполнение раз в неделю с помощью планировщика заданий Cron.

Рекомендуем вам ознакомиться так же с нашей статьей использование Cron на хостинге

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



Больше информации о SSL сертификатах.

Регистрация доменов

в зонах .RU .РФ

от 200 рублей Зарегистрировать домен

SSL сертификаты

Подтверждение сайта и надежная защита

передаваемых данных

Купить сертификат

Облачные VDS

дешевле чашки кофе

Процессорных ядер: 4, Память: 4 Гб, Диск: 20 Гб SSD, Резервное копирование

от 35 р/день Заказать VDS

Все, что нужно от хостинга

Простое решение для вашего сайта

Подробнее

Хранилище данных

Храни что хочешь по смешным ценам

Почасовая оплата за размещенные данные.

Заказать хранилище