Monitorování a správa vytvoření certifikátu

Platí pro: Azure

Scénáře a operace popsané v tomto článku:

  • Žádost o certifikát KV u podporovaného vystavitele
  • Získání čekající žádosti – stav žádosti je Probíhající
  • Získání čekající žádosti – stav žádosti je Dokončeno
  • Získání čekající žádosti – stav čekající žádosti je "zrušeno" nebo "neúspěšné".
  • Získání čekající žádosti – stav čekající žádosti je "Odstraněno" nebo "přepsáno".
  • Vytvoření (nebo import), pokud existuje čekající požadavek – stav je Probíhající
  • Sloučení při vytvoření čekající žádosti s vystavitelem (například DigiCert)
  • Vyžádejte si zrušení, dokud je stav čekající žádosti probíhající.
  • Odstranění čekajícího objektu požadavku
  • Ruční vytvoření certifikátu KV
  • Sloučení při vytvoření čekající žádosti – ruční vytvoření certifikátu

Žádost o certifikát KV u podporovaného vystavitele

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" už byl ve vašem trezoru klíčů dostupný s poskytovatelem vystavitele DigiCert. Vystavitel certifikátu je entita reprezentovaná v Azure Key Vault (KV) jako prostředek CertificateIssuer. Slouží k poskytování informací o zdroji certifikátu KV. jméno vystavitele, zprostředkovatele, přihlašovací údaje a další podrobnosti o správě.

Žádost

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "mydigicert",
      "cty": "OV-SSL",
    }
  }
}

Odpověď

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 žádosti je Probíhající

Metoda Identifikátor URI žádosti
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Žádost

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Poznámka

Pokud je v dotazu zadaný request_id, funguje jako filtr. Pokud se request_id v dotazu a v čekajícím objektu liší, vrátí se stavový kód HTTP 404.

Odpověď

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čeno

Žádost

Metoda Identifikátor URI žádosti
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Odpověď

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šeno" nebo "neúspěšné".

Žádost

Metoda Identifikátor URI žádosti
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Odpověď

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ě chyby vystavitele nebo uživatele.

Získání čekající žádosti – stav čekající žádosti je "Odstraněno" nebo "přepsáno".

Čekající objekt může být odstraněn nebo přepsán operací vytvoření nebo importu, pokud jeho stav není inProgress.

Metoda Identifikátor URI žádosti
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Žádost

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

DOSTAT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Odpověď

StatusCode: 404, ReasonPhrase: 'Not Found'
{
  "error": {
    "code": "PendingCertificateNotFound",
    "message": "…"
  }
}

Vytvoření (nebo import), pokud existuje čekající požadavek – stav je Probíhající

Čekající objekt má čtyři možné stavy; "inprogress", "canceled", "failed" nebo "completed" (dokončeno).

Pokud je čekající požadavek ve stavu Probíhající, operace vytvoření (a importu) selžou se stavovým kódem HTTP 409 (konflikt).

Řešení 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 na dokončení, selhání nebo zrušení certifikátu. Případně můžete čekající objekt odstranit.

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}

Žádost

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "mydigicert"
    }
  }
}

Odpověď

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, pokud se vytvoří čekající objekt s vystavitelem, ale je povoleno, když je inProgressjeho stav .

Pokud požadavek na vytvoření certifikátu x509 z nějakého důvodu selže nebo se zruší a pokud je možné certifikát x509 načíst mimo pásmo, je možné certifikát KV dokončit pomocí operace sloučení.

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=" ]
}

Odpověď

StatusCode: 403, ReasonPhrase: 'Forbidden'
{
  "error": {
    "code": "Forbidden",
    "message": "Merge is forbidden on pending object created with issuer : <issuer-name> while it is in progess."
  }
}

Vyžádejte si zrušení, dokud je stav čekající žádosti probíhající.

O zrušení je možné pouze požádat. Žádost může být zrušena, ale nemusí být zrušena. Pokud požadavek není probíhající, vrátí se stav HTTP 400 (Chybný požadavek).

Metoda Identifikátor URI žádosti
OPRAVA https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Žádost

OPRAVA “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

OPRAVA “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

{
  "cancellation_requested": true
}

Odpověď

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í čekajícího objektu 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

ODSTRANIT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}&request_id=a76827a18b63421c917da80f28e9913d"

NEBO

ODSTRANIT “https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}"

Odpověď

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 vystavený certifikační autoritou podle vlastního výběru můžete vytvořit ručním vytvořením. 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}

Žádost

{
  "policy": {
    "x509_props": {
      "subject": "CN=MyCertSubject1"
    },
    "issuer": {
      "name": "Unknown"
    }
  }
}

Odpověď

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 elementu Požaduje se Typ Verze Popis
x5c Yes array <představuje verzi> Řetěz certifikátů X509 jako základní pole řetězců 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
		}
	}
}