Поделиться через


Ресурс сертификата

Сертификаты предоставляют механизм проверки подлинности веб-серверов, а также безопасных каналов связи. API сертификатов является важным для создания веб-сайтов, обслуживающих содержимое по протоколу HTTPS.

GET/api/certificates/{id}

{
    "alias": "My Self Signed Certificate",
    "id": "{id}",
    "issued_by": "CN=localhost",
    "subject": "CN=localhost",
    "thumbprint": "1E927A29E966FA11A7C469BC565A9E00B11F5F95",
    "signature_algorithm": "sha256RSA",
    "valid_from": "2017-04-12T11:26:26Z",
    "valid_to": "2019-04-12T11:26:26Z",
    "version": "3",
    "intended_purposes": [
        "Client Authentication",
        "Server Authentication"
    ],
    "private_key": {
        "exportable": "false"
    },
    "subject_alternative_names": [
        "DNS Name=localhost",
        "DNS Name=my-work-pc"
    ],
    "store": {
        "name": "My",
        "id": "{store-id}",
        "_links": {
            "self": {
                "href": "/api/certificates/stores/{store-id}"
            }
        }
    }
}

Запросы диапазона

Это не редкость для веб-сервера иметь очень большое количество сертификатов. Чтобы повысить удобство использования API сертификатов для этих серверов, конечная точка поддерживает запросы диапазона. Отправка запроса HEAD в конечную точку сертификатов предложит серверу ответить на общее количество сертификатов, доступных в заголовке X-Total-Count HTTP. Затем сертификаты можно запрашивать в блоках, задав заголовок диапазона в последующих запросах.

HEAD/api/certificates

200 OK
x-total-count: 100

Повторная проверка второго и третьего сертификатов из 100

GET /api/certificates
Access-Token: Bearer {Access-Token}
Range: certificates=1-2

Хранилища сертификатов

Все сертификаты принадлежат хранилищу сертификатов. Список доступных хранилищ сертификатов можно повторно просмотреть из конечной точки хранилища сертификатов /api/certificates/store. Эти хранилища сертификатов имеют свойство утверждений, указывающее, какие операции разрешены для сертификатов внутри хранилища. Этот доступ можно настроить с помощью раздела сертификатов параметров приложения файла. В настоящее время хранилища сертификатов поддерживают только операции чтения. В будущем API может поддерживать импорт, экспорт, удаление и создание сертификатов.

GET/api/certificates/store

{
    "stores": [
        {
            "name": "My",
            "id": "{store-id}",
            "_links": {
                "self": {
                    "href": "/api/certificates/stores/{store-id}"
                }
            }
        },
        {
            "name": "WebHosting",
            "id": "{store-id}"
            // _links omitted
        },
        {
            "name": "IIS Central Certificate Store",
            "id": "{store-id}"
            // _links omitted
        }
    ]
}

Перечисление сертификатов для определенного магазина

API сертификатов поддерживает фильтрацию сертификатов по хранилищу. Для этого необходимо повторно использовать свойство идентификатора целевого хранилища сертификатов. Это можно сделать с помощью конечной точки хранилища сертификатов. Затем запрос должен быть выполнен в конечную точку сертификатов, которая указывает поле store.id в строке запроса. Следующий запрос будет повторно использовать все сертификаты для встроенного хранилища сертификатов веб-размещения.

GET/api/certificates?store.id={store-id}

{
    "certificates": [
        {
            "alias": "WebHostCert",
            "id": "{cert-id}",
            "issued_by": "CN=localhost",
            "subject": "CN=localhost",
            "thumbprint": "8E7933F41998C507B30F0E0AC8B548A903FE7843",
            "valid_to": "2019-02-28T14:32:33Z",
            "_links": {
                "self": {
                    "href": "/api/certificates/{cert-id}"
                }
            }
        }
    ]
}