Мониторинг и администрирование процесса создания сертификатов
Область применения: Azure
следующие сценарии и операции:
- Запрос сертификата Key Vault с помощью поддерживаемого издателя
- Получение ожидающего запроса (состояние запроса "Выполняется").
- Получение ожидающего запроса (состояние запроса "Готово").
- Получение ожидающих запросов (состояние ожидающего запроса "Отменено" или "Сбой").
- Получение ожидающих запросов (состояние ожидающего запроса "Удалено" или "Перезаписано").
- Создание (или импорт) при имеющемся ожидающем запросе (состояние "Выполняется").
- Слияние при создании ожидающего выполнения запроса с помощью издателя (например, DigiCert).
- Запрос отмены при состоянии ожидающего запроса "Выполняется".
- Удаление ожидающего объекта запроса.
- Создание сертификата Key Vault вручную.
- Слияние при создании ожидающего запроса (создание сертификата вручную).
Запрос сертификата Key Vault с помощью поддерживаемого издателя
Способ | URI запроса |
---|---|
POST | 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",
}
}
}
Response
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 запроса |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Запросить
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Примечание.
Если request_id указан в запросе, он действует как фильтр. Если request_id в запросе и ожидающем объекте различается, возвращается код состояния HTTP 404.
Response
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 запроса |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Response
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 запроса |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
GET “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>"
}
}
Примечание.
Значение errorcode может быть следующим: Certificate issuer error (Ошибка, связанная с издателем сертификата) или "Запрос отклонен". Это зависит от ошибки издателя или пользователя соответственно.
Получение ожидающих запросов (состояние ожидающего запроса "Удалено" или "Перезаписано").
Ожидающий объект может быть удален или перезаписан операцией создания или импорта, если его состояние не inProgress
является.
Способ | URI запроса |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Запросить
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Response
StatusCode: 404, ReasonPhrase: 'Not Found'
{
"error": {
"code": "PendingCertificateNotFound",
"message": "…"
}
}
Создание (или импорт) при имеющемся ожидающем запросе (состояние "Выполняется").
Ожидающий объект может находиться в одном из четырех возможных состояний: "Выполняется", "Отменено", "Сбой" или "Готово".
Если состояние ожидающего запроса — "Выполняется", операции создания и импорта завершаются ошибкой с кодом состояния HTTP 409 (конфликт).
Чтобы устранить конфликт, сделайте следующее.
Если сертификат создается вручную, можно завершить создание, выполнив слияние или удалив ожидающий объект.
Если сертификат создается с помощью издателя, можно подождать, пока сертификат создастся или же произойдет сбой либо отмена операции. Кроме того, можно удалить ожидающий объект.
Примечание.
Удаление ожидающего объекта может отменить запрос сертификата x509 с помощью поставщика.
Способ | URI запроса |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Запросить
{
"policy": {
"x509_props": {
"subject": "CN=MyCertSubject1"
},
"issuer": {
"name": "mydigicert"
}
}
}
Response
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 можно получить другим способом, для завершения создания сертификата Key Vault можно выполнить операцию слияния.
Способ | URI запроса |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Запросить
{
"x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}
Response
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", возвращается состояние HTTP 400 (недопустимый запрос).
Способ | URI запроса |
---|---|
PATCH | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Запросить
PATCH “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
PATCH “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
{
"cancellation_requested": true
}
Response
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 запроса |
---|---|
DELETE | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Запросить
DELETE “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
ИЛИ
DELETE “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Response
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",
}
Создание сертификата Key Vault вручную.
Вы можете вручную создать сертификат, выданный в центре сертификации. Задайте имя издателя значение "Неизвестно" или не укажите поле издателя.
Способ | URI запроса |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Запросить
{
"policy": {
"x509_props": {
"subject": "CN=MyCertSubject1"
},
"issuer": {
"name": "Unknown"
}
}
}
Response
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 запроса |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Запросить
{
"x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}
Имя элемента | Обязательное поле | Тип | Версия | Description |
---|---|---|---|---|
x5c | Да | array | <общие сведения о версии> | Цепочка сертификатов X509 как массив строк в кодировке Base 64. |
Отклик
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
}
}
}