Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Azure
Ниже приведены сценарии и операции, описанные в этой статье:
- Запрос сертификата KV от поддерживаемого удостоверяющего центра
- Получение ожидающего запроса — статус запроса "в процессе выполнения"
- Получение ожидающего запроса — состояние запроса — "завершено"
- Получение ожидающего запроса— состояние ожидающего запроса "отменено" или "не выполнено"
- Получение ожидающего запроса — состояние ожидающего запроса "удалено" или "перезаписано"
- Создание (или импорт) при наличии ожидающего запроса — состояние «в процессе»
- Слияние осуществляется при создании ожидающего запроса с поставщиком сертификатов (например, DigiCert)
- Запросите отмену, пока статус ожидающего запроса — «в процессе выполнения».
- Удалите объект ожидающего запроса
- Вы можете создать сертификат KV вручную.
- Слияние при создании ожидающего запроса — создание сертификата вручную
Запросить сертификат KV у поддерживаемого издателя
Метод | Запрос URI |
---|---|
ПОСТ | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
В следующих примерах требуется, чтобы объект с именем "mydigicert" уже был доступен в хранилище ключей и указан поставщик DigiCert. Издатель сертификата — это сущность, представленная в Azure Key Vault (KV) в качестве ресурса CertificateIssuer. Он используется для предоставления сведений об источнике сертификата KV; Имя издателя, поставщик, учетные данные и другие административные сведения.
Просьба
{
"policy": {
"x509_props": {
"subject": "CN=MyCertSubject1"
},
"issuer": {
"name": "mydigicert",
"cty": "OV-SSL",
}
}
}
Ответ
StatusCode: 202, ReasonPhrase: 'Accepted'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "mydigicert"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": false,
"status": "InProgress",
"status_details": "Pending certificate created. Certificate request is in progress. This may take some time based on the issuer provider. Please check again later",
"request_id": "a76827a18b63421c917da80f28e9913d"
}
Получить ожидающий запрос — статус запроса "в процессе"
Метод | Запрос URI |
---|---|
ПОЛУЧАЙ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Просьба
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Замечание
Если request_id указан в запросе, он действует как фильтр. Если request_id в запросе и в ожидающих объектах отличаются, возвращается код состояния HTTP 404.
Ответ
StatusCode: 200, ReasonPhrase: 'OK'
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "{issuer-name}"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": false,
"status": "inProgress",
"status_details": "…",
"request_id": "a76827a18b63421c917da80f28e9913d"
}
Получение ожидающего запроса — состояние запроса — "завершено"
Просьба
Метод | Запрос URI |
---|---|
ПОЛУЧАЙ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Ответ
StatusCode: 200, ReasonPhrase: 'OK'
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "{issuer-name}"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": false,
"status": "completed",
"request_id": "a76827a18b63421c917da80f28e9913d",
"target": “https://mykeyvault.vault.azure.net/certificates/mycert1?api-version={api-version}"
}
Получение ожидающего запроса— состояние ожидающего запроса "отменено" или "не выполнено"
Просьба
Метод | Запрос URI |
---|---|
ПОЛУЧАЙ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Ответ
StatusCode: 200, ReasonPhrase: 'OK'
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "{issuer-name}"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": false,
"status": "failed",
"status_details": "",
"request_id": "a76827a18b63421c917da80f28e9913d",
"error": {
"code": "<errorcode>",
"message": "<message>"
}
}
Замечание
Значение кода ошибки может быть "Ошибка издателя сертификатов" или "Запрос отклонен" на основе ошибки издателя или пользователя соответственно.
Получение ожидающего запроса — состояние ожидающего запроса "удалено" или "перезаписано"
Ожидающий объект может быть удален или перезаписан операцией создания или импорта, если его состояние не inProgress
является.
Метод | Запрос URI |
---|---|
ПОЛУЧАЙ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Просьба
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
ПОЛУЧИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Ответ
StatusCode: 404, ReasonPhrase: 'Not Found'
{
"error": {
"code": "PendingCertificateNotFound",
"message": "…"
}
}
Создание (или импорт) при наличии ожидающего запроса — состояние в процессе
Ожидающий объект имеет четыре возможных состояния: "в процессе", "отменено", "не удалось" или "завершено".
Если состояние ожидающего запроса находится в состоянии 'inprogress', операции создания (и импорта) завершаются сбоем с кодом состояния HTTP 409 (конфликт).
Чтобы устранить конфликт, выполните следующие действия.
Если сертификат создается вручную, можно либо завершить сертификат KV, выполнив объединение или удаление объекта, находящегося в ожидании.
Если сертификат создается с издателем, вы можете ждать завершения сертификата, завершить работу или отменить его. Кроме того, можно удалить ожидающий объект.
Замечание
Удаление ожидающего объекта может или не может отменить запрос сертификата x509 с поставщиком.
Метод | Запрос URI |
---|---|
ПОСТ | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Просьба
{
"policy": {
"x509_props": {
"subject": "CN=MyCertSubject1"
},
"issuer": {
"name": "mydigicert"
}
}
}
Ответ
StatusCode: 409, ReasonPhrase: 'Conflict'
{
"error": {
"code": "Forbidden",
"message": "A new key vault certificate can not be created or imported while a pending key vault certificate's status is inProgress."
}
}
Объединение при создании ожидающего запроса с эмитентом
Слияние не разрешено, когда объект в ожидании создается с издателем, но разрешено, когда его состояние inProgress
.
Если запрос на создание сертификата x509 завершается ошибкой или отменяется по какой-либо причине, и если сертификат x509 можно получить с помощью внеполосных средств, операция слияния может быть выполнена для завершения сертификата KV.
Метод | Запрос URI |
---|---|
ПОСТ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Просьба
{
"x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}
Ответ
StatusCode: 403, ReasonPhrase: 'Forbidden'
{
"error": {
"code": "Forbidden",
"message": "Merge is forbidden on pending object created with issuer : <issuer-name> while it is in progess."
}
}
Запрос отмены, а состояние ожидающего запроса — inProgress
Отмену можно запросить только. Запрос может быть отменен или не может быть отменен. Если запрос не является "inProgress", возвращается состояние HTTP 400 (недопустимый запрос).
Метод | Запрос URI |
---|---|
патч | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Просьба
ИСПРАВЛЕНИЕ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
ИСПРАВЛЕНИЕ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
{
"cancellation_requested": true
}
Ответ
StatusCode: 200, ReasonPhrase: 'OK'
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "{issuer-name}"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": true,
"status": "inProgress",
"status_details": "…",
"request_id": "a76827a18b63421c917da80f28e9913d"
}
Удалить объект ожидающего запроса
Замечание
Удаление ожидающего объекта может или не может отменить запрос сертификата x509 с поставщиком.
Метод | Запрос URI |
---|---|
Удалить | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Просьба
УДАЛИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
УДАЛИТЬ “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Ответ
StatusCode: 200, ReasonPhrase: 'OK'
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "{issuer-name}"
},
"csr": "MIICq......DD5Lp5cqXg==",
"cancellation_requested": false,
"status": "inProgress",
"request_id": "a76827a18b63421c917da80f28e9913d",
}
Создание сертификата KV вручную
Вы можете создать сертификат, выданный цС вашего выбора, с помощью процесса создания вручную. Задайте имя издателя значение "Неизвестно" или не укажите поле издателя.
Метод | Запрос URI |
---|---|
ПОСТ | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Просьба
{
"policy": {
"x509_props": {
"subject": "CN=MyCertSubject1"
},
"issuer": {
"name": "Unknown"
}
}
}
Ответ
StatusCode: 202, ReasonPhrase: 'Accepted'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
{
"id": “https://mykeyvault.vault.azure.net/certificates/mycert1/pending",
"issuer": {
"name": "Unknown"
},
"csr": "MIICq......DD5Lp5cqXg==",
"status": "inProgress",
"status_details": "Pending certificate created. Please Perform Merge to complete the request.",
"request_id": "a76827a18b63421c917da80f28e9913d"
}
Слияние при создании ожидающего запроса — создание сертификата вручную
Метод | Запрос URI |
---|---|
ПОСТ | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Просьба
{
"x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}
Имя элемента | Обязательно | Тип | Версия | Описание |
---|---|---|---|---|
x5c | Да | массив | <представляем версию> | Цепочка сертификатов X509 в виде массива строк в кодировке Base64. |
Ответ
StatusCode: 201, ReasonPhrase: 'Created'
Location: “https://mykeyvault.vault.azure.net/certificates/mycert1?api-version={api-version}"
{
"id": "https mykeyvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352",
"kid": "https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352",
"sid": " mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352",
"cer": "……de34534……",
"x5t": "n14q2wbvyXr71Pcb58NivuiwJKk",
"attributes": {
"enabled": true,
"exp": 1530394215,
"nbf": 1435699215,
"created": 1435699919,
"updated": 1435699919
},
"pending": {
"id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/pending"
},
"policy": {
"id": "https:// mykeyvault.vault.azure.net/certificates/mycert1/policy",
"key_props": {
"exportable": false,
"kty": "RSA",
"key_size": 2048,
"reuse_key": false
},
"secret_props": {
"contentType": "application/x-pkcs12"
},
"x509_props": {
"subject": "CN=Mycert1",
"ekus": ["1.3.6.1.5.5.7.3.1", "1.3.6.1.5.5.7.3.2"],
"validity_months": 12
},
"lifetime_actions": [{
"trigger": {
"lifetime_percentage": 80
},
"action": {
"action_type": "EmailContacts"
}
}],
"issuer": {
"name": "Unknown"
},
"attributes": {
"enabled": true,
"created": 1435699811,
"updated": 1435699811
}
}
}