SSL.com's Партнеры-реселлеры теперь может генерировать ACME учетные данные для своих клиентов с SWS-API. В этом руководстве описаны конечные точки API, которые торговый посредник должен создать, чтобы воспользоваться этой функцией, и приведены пошаговые инструкции для создания нового набора учетных данных.
Конечные точки API реселлера
Прежде чем приступить к выдаче учетных данных ACME клиентам, торговые посредники должны предоставить две конечные точки API, которые SSL.com может вызывать для авторизации и выдачи сертификатов. Торговые посредники также должны предоставить SSL.com URL-адрес обратного вызова (например, https://acme-hook.reseller.com
в примерах ниже), которые RA SSL.com будет использовать при выполнении этих запросов.
reseller_authorization
SSL.com позвонит торговому посреднику reseller_authorization
конечная точка, чтобы определить, должен ли быть выдан запрошенный сертификат (например, если на счете клиента достаточно средств). Запрос будет включать пользователя kid
, тип и срок действия запрашиваемого сертификата, а также используемый метод проверки:
POST https://acme-hook.reseller.com/reseller_authorization {"kid": '2378c85a2d9b', 'product': 'sslcom_dv', 'duration': '365', 'identifiers': {dns: ['example. com ']}}
Успешный ответ (заказ может быть принят)
Успешный ответ, когда торговый посредник указывает, что заказ авторизован и может быть выполнен, должен включать код состояния 200 OK
и еще один success
Значение true
в теле ответа:
{"успех": правда}
Если торговый посредник санкционирует заказ, как показано выше, RA SSL.com проверит, может ли торговый посредник выставить счет за покупку, чтобы определить, может ли он быть выполнен. Если торговый посредник разрешает заказ, но не имеет достаточных средств для покрытия сертификата, клиентам будет выдан 90-дневный бесплатный сертификат.
Неудачный ответ (заказ не может быть принят)
Неудачный ответ должен включать соответствующий200
код состояния, например:
403 Forbidden
если у клиента недостаточно средств у торгового посредника.401 Unauthorized
еслиkid
отсутствует в записях торгового посредника.500 Internal Server Error
если что-то пошло не так на стороне реселлера.
В теле ответа для неудавшегося заказа должно быть указано значение false
для success
, а также может включать error_message
который будет показан пользователю:
{"success": "false", "error_message": "недостаточный баланс"}
If error_message
пусто, пользователю будет показано общее сообщение «Заказ не авторизован».
получить_сертификат
Ассоциация receive_certificate
конечная точка используется SSL.com для отправки выпущенного сертификата полной цепи торговому посреднику вместе с другой информацией о запросе:
POST https://acme-hook.reseller.com/receive_certificate {"kid": "2378c85a2d9b", "product": "basicssl", "duration": "365", 'идентификаторы': {dns: ['пример. com ',' www.example.com ']}, "cert": {"body": , "not_before" => "2021-06-07T11: 39: 17.000-05: 00", "not_after" => "2021-09-19T11: 36: 24.000-05: 00"}}
Создать учетные данные ACME
После того, как торговый посредник предоставил конечные точки API, описанные выше, он может следовать приведенным ниже пошаговым инструкциям, чтобы сгенерировать учетные данные ACME для клиента:
- Во-первых, вам потребуются учетные данные SSL.com API. Войдите в свою панель реселлера SSL.com и нажмите учетные данные API ссылку.
- Используйте ссылки буфера обмена, чтобы скопировать Аккаунт / ключ ACME и Secret Key связано с
account_admin
роль и вставьте их в текстовый редактор. - Откройте окно терминала и введите команду cURL, как показано ниже. Заменять
ACCOUNT-KEY
иSECRET-KEY
со значениями, которые вы собрали на предыдущем шаге. ЗаменятьDESCRIPTION
с описательным текстом о вашем клиенте, например названием его компании или идентификатором пользователя. Обратите внимание, что каждыйDESCRIPTION
то, что вы используете, должно быть уникальным. Выполнение повторных запросов с тем же описанием вернет учетные данные, которые были изначально сгенерированы для первого запроса с этим описанием.curl --location --request POST 'https: //sws.sslpki.com / acme / create_credentials '\ --header' Content-Type: application / json '\ --data-raw' {"account_key": "ACCOUNT-KEY", "secret_key": "SECRET-KEY", "описание ": "ОПИСАНИЕ"}'
- Вы должны получить объект JSON с
eab-kid
иeab-hmac
значения, которые вы можете предоставить своему клиенту для использования при запросе сертификатов с помощью ACME.{"response_type": "ok", "eab-kid": "2378c85a2d9b", "eab-hmac": "qTs1vE6SMcX3UgK5DtYbc48IYUd7wUr109eCslCdY3N"}
- Новые учетные данные также появятся вместе с другими учетными данными API и ACME вашей учетной записи посредника.