Monitorování a správa vytvoření certifikátu
Platí pro: Azure
Scénáře a operace popsané v tomto článku:
- Vyžádání certifikátu KV s podporovaným vystavitelem
- Získání čekající žádosti – stav požadavku je inProgress
- Získání čekající žádosti – stav žádosti je dokončený
- Získání čekající žádosti – stav čekající žádosti je zrušený nebo neúspěšný
- Získání čekající žádosti – stav čekající žádosti je "odstraněn" nebo "přepsán".
- Vytvoření (nebo import), pokud existuje čekající požadavek – stav je inProgress
- Sloučení při vytvoření čekající žádosti s vystavitelem (například DigiCert)
- Žádost o zrušení, zatímco stav čekající žádosti je inProgress
- Odstranění objektu čekajícího požadavku
- Ruční vytvoření certifikátu KV
- Sloučení při vytvoření čekající žádosti – ruční vytvoření certifikátu
Vyžádání certifikátu KV s podporovaným vystavitelem
metoda | Identifikátor URI žádosti |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Následující příklady vyžadují, aby objekt s názvem mydigicert již byl ve vašem trezoru klíčů k dispozici s poskytovatelem vystavitele jako DigiCert. Vystavitel certifikátu je entita reprezentovaná ve službě Azure Key Vault (KV) jako prostředek CertificateIssuer. Slouží k poskytování informací o zdroji certifikátu KV; název vystavitele, poskytovatel, přihlašovací údaje a další podrobnosti o správě.
Požádat
{
"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"
}
Získání čekající žádosti – stav požadavku je inProgress
metoda | Identifikátor URI žádosti |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Žádost
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
NEBO
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Poznámka:
Pokud je v dotazu zadán request_id , funguje jako filtr. Pokud se request_id v dotazu a čekající objekt liší, vrátí se stavový kód 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"
}
Získání čekající žádosti – stav žádosti je dokončený
Žádost
metoda | Identifikátor URI žádosti |
---|---|
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"
NEBO
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}"
}
Získání čekající žádosti – stav čekající žádosti je zrušený nebo neúspěšný
Žádost
metoda | Identifikátor URI žádosti |
---|---|
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"
NEBO
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Odpověď respondenta
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>"
}
}
Poznámka:
Hodnota kódu chyby může být Chyba vystavitele certifikátu nebo Žádost zamítnuta na základě vystavitele nebo chyby uživatele.
Získání čekající žádosti – stav čekající žádosti je "odstraněn" nebo "přepsán".
Čekající objekt lze odstranit nebo přepsat operací vytvoření/importu, pokud není inProgress
jeho stav .
metoda | Identifikátor URI žádosti |
---|---|
GET | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Žádost
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
NEBO
GET “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"
Response
StatusCode: 404, ReasonPhrase: 'Not Found'
{
"error": {
"code": "PendingCertificateNotFound",
"message": "…"
}
}
Vytvoření (nebo import), pokud existuje čekající požadavek – stav je inProgress
Čekající objekt má čtyři možné stavy; "inprogress", "canceled", "failed" nebo "completed"
Pokud je stav čekajícího požadavku "inprogress", operace vytváření (a importu) selžou se stavovým kódem HTTP 409 (konflikt).
Oprava konfliktu:
Pokud se certifikát vytváří ručně, můžete certifikát KV dokončit sloučením nebo odstraněním čekajícího objektu.
Pokud se certifikát vytváří s vystavitelem, můžete počkat, až se certifikát dokončí, selže nebo se zruší. Případně můžete odstranit čekající objekt.
Poznámka:
Odstranění čekajícího objektu může nebo nemusí zrušit žádost o certifikát x509 u zprostředkovatele.
metoda | Identifikátor URI žádosti |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Požádat
{
"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."
}
}
Sloučení při vytvoření čekající žádosti s vystavitelem
Sloučení není povoleno při vytvoření čekajícího objektu s vystavitelem, ale je povolen, pokud je inProgress
jeho stav .
Pokud se žádost o vytvoření certifikátu x509 z nějakého důvodu nezdaří nebo zruší a pokud je možné certifikát x509 načíst mimo pásmové prostředky, je možné provést operaci sloučení pro dokončení certifikátu KV.
metoda | Identifikátor URI žádosti |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Požádat
{
"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."
}
}
Žádost o zrušení, zatímco stav čekající žádosti je inProgress
O zrušení je možné požádat pouze. Žádost může nebo nemusí být zrušena. Pokud požadavek není inProgress, vrátí se stav HTTP 400 (Chybný požadavek).
metoda | Identifikátor URI žádosti |
---|---|
PATCH | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Žádost
ZÁPLATA “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
NEBO
ZÁPLATA “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"
}
Odstranění objektu čekajícího požadavku
Poznámka:
Odstranění čekajícího objektu může nebo nemusí zrušit žádost o certifikát x509 u zprostředkovatele.
metoda | Identifikátor URI žádosti |
---|---|
DELETE | https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version} |
Žádost
VYMAZAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"
NEBO
VYMAZAT “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",
}
Ruční vytvoření certifikátu KV
Certifikát vydaný certifikační autoritou podle vašeho výběru můžete vytvořit prostřednictvím ručního procesu vytváření. Nastavte název vystavitele na Neznámý nebo nezadávejte pole vystavitele.
metoda | Identifikátor URI žádosti |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version} |
Požádat
{
"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"
}
Sloučení při vytvoření čekající žádosti – ruční vytvoření certifikátu
metoda | Identifikátor URI žádosti |
---|---|
POST | https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version} |
Žádost
{
"x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}
Název prvku | Požaduje se | Typ | Verze | Popis |
---|---|---|---|---|
x5c | Ano | pole | <představujeme verzi> | Řetěz certifikátů X509 jako pole řetězců base 64 |
Odpověď
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
}
}
}