SSL Certificate API

Ваши сертификаты

В этом разделе описаны методы API для создания, удаления и изменения ваших SSL-сертификатов.

Получить список всех сертификатов

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/certificate/

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Array JSON Информация о сертификатах или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

border=1 class="docutils">
Код ответа Сообщение
0 OK
454 Record not found in database
455 Not Allowed
550 Internal Server Error

Формат JSON, возвращаемого в элементах параметра data:

"comment": "july_23",  - string
"end_timestamp": 1689570782,  - timestamp
"cn": "*.cdn.sber.cloud",  - string
"seq": 1,  - int (uid)
"start_timestamp": 1655269983, - timestamp
"alt": "*.cdn.sber.cloud, cdn.sber.cloud",  - string
"issuer": "Go Daddy Secure Certificate Authority - G2", - string
"start_iso8601": "2022-06-15T05:13:03Z", - string
"end_iso8601": "2023-07-17T05:13:02Z" - string

Пример запроса

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/

Пример успешного ответа

{
    "status": 0,
    "message": "",
    "data": [{"comment": "july_23",
    "end_timestamp": 1689570782,
    "cn": "*.cdn.sber.cloud",
    "seq": 1, "start_timestamp": 1655269983,
    "alt": "*.cdn.sber.cloud, cdn.sber.cloud",
    "issuer": "Go Daddy Secure Certificate Authority - G2"
    "start_iso8601": "2022-06-15T05:13:03Z",
    "end_iso8601": "2023-07-17T05:13:02Z"
    }
  ]
}

Пример неуспешного ответа

{"status": 454, "message": "Record not found in database"}

Получить сертификат по ID

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/certificate/<certificate_seq>

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Возможные query-параметры:

Имя параметра Назначение Обязательный
details Получение дополнительной информации о цепочке сертификатов Нет

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Array JSON Информация о сертификате или ошибка
503 None None Сервис недоступен

Возможные коды ответа в параметре status:

Код ответа Сообщение
0 OK
454 Record not found in database
455 Not Allowed
550 Internal Server Error

Формат JSON, возвращаемого в элементах параметра data:

"comment": "",  - string
"end_timestamp": 1689570782,  - timestamp
"cn": "*.cdn.sber.cloud",  - string
"seq": 1,  - int (uid)
"start_timestamp": 1655269983, - timestamp
"alt": "*.cdn.sber.cloud, cdn.sber.cloud",  - string
"issuer": "Go Daddy Secure Certificate Authority - G2", - string
"start_iso8601": "2022-06-15T05:13:03Z", - string
"end_iso8601": "2023-07-17T05:13:02Z", - string
"chain_info": [], - JSON Array of JSON objects *

* только при запросе с query-параметром details.

Формат JSON, возвращаемого в элементах параметра data.chain_info:

"end_timestamp": 1689570782,  - timestamp
"subject_CN": "*.cdn.sber.cloud",  - string
"start_timestamp": 1655269983, - timestamp
"issuer_CN": "GlobalSign GCC R3 DV TLS CA 2020", - string
"start_iso8601": "2022-06-15T05:13:03Z", - string
"end_iso8601": "2023-07-17T05:13:02Z", - string
"fingerprint": "22:C2:D3:6B:6B:EE:AF:D3:1C:61:0A:0A:87:D4:92:F4:83:BE:9B:6A", - string
"serial": "42:D5:2A:6F:9A:D9:E9:D0:49:D7:74:77" - string

Пример запроса

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/1/

Пример успешного ответа

{
    "status": 0,
    "message": "",
    "data": [{"comment": "",
    {"comment": "july_23",
    "end_timestamp": 1689570782,
    "cn": "*.cdn.sber.cloud",
    "seq": 1,
    "start_timestamp": 1655269983,
    "alt": "*.cdn.sber.cloud, cdn.sber.cloud",
    "issuer": "Go Daddy Secure Certificate Authority - G2",
    "start_iso8601": "2022-06-15T05:13:03Z",
    "end_iso8601": "2023-07-17T05:13:02Z"}]
  }
}

Пример неуспешного ответа

{
  "status": 454,
  "message": "Record not found in database"
}

Пример запроса с дополнительной информацией о цепочке

curl -H "CDN-AUTH-TOKEN: $TOKEN"  https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/1/?details

Пример успешного ответа

{
    "status": 0,
    "message": "",
    "data": [
      {
      "comment": "july_23",
      "end_timestamp": 1689570782,
      "cn": "*.cdn.sber.cloud",
      "seq": 1,
      "start_timestamp": 1655269983,
      "alt": "*.cdn.sber.cloud, cdn.sber.cloud",
      "issuer": "GlobalSign GCC R3 DV TLS CA 2020"
      "start_iso8601": "2022-06-15T05:13:03Z",
      "end_iso8601": "2023-07-17T05:13:02Z",
      "chain_info": [
            {
            "start_timestamp": 1655269983,
            "end_iso8601": "2023-07-17T05:13:02Z",
            "start_iso8601": "2022-06-15T05:13:03Z",
            "subject_CN": "*.cdn.sber.cloud",
            "fingerprint": "22:C2:D3:6B:6B:EE:AF:D3:1C:61:0A:0A:87:D4:92:F4:83:BE:9B:6A",
            "issuer_CN": "GlobalSign GCC R3 DV TLS CA 2020",
            "serial": "42:D5:2A:6F:9A:D9:E9:D0:49:D7:74:77",
            "end_timestamp": 1689570782
            },
            {
            "start_timestamp": 1595883600,
            "end_iso8601": "2029-03-18T00:00:00Z",
            "start_iso8601": "2020-07-28T00:00:00Z",
            "subject_CN": "GlobalSign GCC R3 DV TLS CA 2020",
            "fingerprint": "1C:61:0A:0A:87:D4:92:F4:83:22:C2:AF:D3:BE:9B:6A:D3:6B:6B:EE",
            "issuer_CN": "GlobalSign",
            "serial": "77:BD:0E:07:42:D5:D9:E9:D0:49:D7:74:D0:2A:6F:9A",
            "end_timestamp": 1868475600
            },
            {
            "start_timestamp": 1237359600,
            "end_iso8601": "2029-03-18T10:00:00Z",
            "start_iso8601": "2009-03-18T10:00:00Z",
            "subject_CN": "GlobalSign",
            "fingerprint": "D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD",
            "issuer_CN": "GlobalSign",
            "end_timestamp": 1868511600
            }
         ]
      }
  ]
}

Добавить сертификат

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/certificate/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с данными сертификата

  • Тип данных ответа: JSON Object

Описание параметров тела запроса:

Имя параметра Тип параметра Обязательный
certificate Текст Да
private_key Текст Да
comment Текст Да

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Object JSON Сертификат добавлен или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 cert saved
450 Invalid request
455 Not Allowed
459 Certificate already exist, use PATCH to update certificate
471 Invalid certificate
472 Invalid private key
473 Private key does not match certificate
474 Certificate is expired
475 Root certificate is not found in system trusted certificates
476 Certificate has N invalid line(s)
478 Cert chain error: Two or more certificates have the same subject
479 Cert chain error: Too many certificates have the same issuer
550 Internal Server Error

Формат JSON, возвращаемого в параметре data:

"seq": 1,  - int (uid)

Пример запроса

curl -X POST -d '{"comment": "new comment", \
     "certificate": "-----BEGIN CERTIFICATE-----\nMIIMvzCCC6egAwIBAgISBDOHrUbe+jaL2W0x4w3T5YuBMA0GCSqGSIb3DQEBCwUA\n-----END CERTIFICATE-----", \
     "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQtDgBy3kRiv2\n-----END PRIVATE KEY-----"}' \
 -H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/'

Пример успешного ответа

{
    "status": 0,
    "message": "cert saved",
    "data": {
    "seq": 2
  }
}

Пример неуспешного ответа

{"status": 459, "message": "Certificate already exist, use PATCH to update certificate"}

Изменить сертификат

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/certificate/<certificate_seq>

  • Тип запроса: PATCH

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON с новыми данными сертификата

  • Тип данных ответа: JSON Object

Описание параметров тела запроса:

Имя параметра Тип параметра Обязательный
certificate Текст Нет
private_key Текст Нет
comment Текст Нет

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Object JSON Сертификат изменен или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 cert updated
450 Invalid request
454 Record not found in database
455 Not Allowed
471 Invalid certificate
472 Invalid private key
473 Private key does not match certificate
474 Certificate is expired
475 Root certificate is not found in system trusted certificates
476 One of certificates is not signed by previous certificate in chain
477 Certificate has N invalid line(s)
550 Internal Server Error

Формат JSON, возвращаемого в параметре data:

"seq": 1,  - int (uid)

Пример запроса

curl -X PATCH -d '{ \
     "certificate": "-----BEGIN CERTIFICATE-----\nMIIMvzCCC6egAwIBAgISBDOHrUbe+jaL2W0x4w3T5YuBMA0GCSqGSIb3DQEBCwUA\n-----END CERTIFICATE-----", \
     "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDQtDgBy3kRiv2\n-----END PRIVATE KEY-----", \
     "comment": "new comment"}' \
 -H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/1'

Пример успешного ответа

{
  "status": 0,
  "message": "cert updated",
  "data": {
  "seq": 2
  }
}

Пример неуспешного ответа

{
  "status": 471,
  "message": "Invalid certificate"
}

Удалить сертификат

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/certificate/<certificate_seq>

  • Тип запроса: DELETE

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Object JSON Сертификат удален или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 cert updated
450 Invalid request
454 Record not found in database
455 Not Allowed
550 Internal Server Error

Формат JSON, возвращаемого в параметре data:

"seq": 1,  - int (uid)

Пример запроса

curl -X DELETE \
-H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdn.sber.cloud/app/ssl/v1/account/zpylkbwv/certificate/1'

Пример успешного ответа

{
  "status": 0,
  "message": "cert updated",
  "data": {
  "seq": 2
  }
}

Пример неуспешного ответа

{
  "status": 454,
  "message": "Record not found in database"
}

Let’s Encrypt сертификаты

Мы также предоставляем возможность генерировать Let’s Encrypt сертификаты. Подробнее о проекте можно прочитать по ссылке: https://letsencrypt.org.

Получить статус заказа сертификата

Получение статуса о создании сертификата (только с указанием ресурса)

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/letsencrypt/<resource_id>/

  • Тип запроса: GET

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string, data: тип JSON Object JSON Статус задачи или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 Success
450 Invalid Request
454 Record not found in database (about resource)
455 Not Allowed
550 Internal Server Error

Формат JSON, возвращаемого в параметре data:

task_status: string
("no"/"accepted"/"processed"/"failed")

Пример запроса

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdn.sber.cloud/app/ssl/v1/account/cpfgdakp/letsencrypt/lajjncnn6d

Пример успешного ответа

{
   "status": 0,
   "message": "Success",
   "data": {
   "task_status": "accepted"
   }
 }

Пример неуспешного ответа

{
  "status": 450,
  "message": "Invalid Request"
}

Заказать сертификат

Создание Let’s Encrypt сертификата для ресурса, при помощи HTTP-01 вызова.

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/letsencrypt/<resource_id>/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тип данных ответа: JSON Object

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string JSON Сертификат заказан или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 Success
450 Invalid request
454 Record not found in database (about resource)
455 Not Allowed
479 Main domain already in use
489 Task already exist
550 Internal Server Error

Пример запроса

curl -X POST \
-H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdn.sber.cloud/app/ssl/v1/account/cpfgdakp/letsencrypt/lajjncnn6d

Пример успешного ответа

{
  "status": 0,
  "message": "Success"
}

Пример неуспешного ответа

{
  "status": 450,
  "message": "Invalid Request"
}

Заказать wildcard сертификат

URL: https://api.cdn.sber.cloud/app/ssl/v1/account/<your_account_name>/letsencrypt/

  • Тип запроса: POST

  • Заголовки: CDN-AUTH-TOKEN

  • Тело запроса: JSON со списком доменов

  • Тип данных ответа: JSON Object

Описание параметров тела запроса:

Имя параметра Тип параметра Обязательный
domains Список строк Да

Возможные коды ответа HTTP:

Код ответа Данные ответа Формат ответа Описание
200 status: тип int, message: тип string JSON Сертификат заказан или ошибка
503 None None Сервис недоступен

Возможные коды ответа API в параметре status:

Код ответа Сообщение
0 Success
450 Invalid request
454 Record not found in database (about resource)
455 Not Allowed
479 Main domain already in use
480 DNS settings are incorrect
489 Task already exist
550 Internal Server Error

Пример запроса

curl -X POST -d '{"domains": ["*.d.example.com"]}' \
-H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdn.sber.cloud/app/ssl/v1/account/cpfgdakp/letsencrypt/

Пример успешного ответа

{
  "status": 0,
  "message": "Success"
}

Пример неуспешного ответа

{
  "status": 480,
  "message": "DNS settings are incorrect"
}
Запустили Evolution free tier
для Dev & Test
Получить