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

Platí pro: Azure

Scénáře/operace popsaných v tomto článku jsou:

  • Požádat o certifikát KV s podporovaným vystavitelem
  • Žádost o přijetí žádosti – stav žádosti je "probíhá"
  • Žádost o získání žádosti čeká na dokončení.
  • Čeká se na vyřízení žádosti – stav žádosti čeká na zrušení nebo chyba.
  • Žádost o přijetí žádosti – stav žádosti čekají na odstranění nebo přepsání
  • Vytvořit (nebo importovat) v případě, že žádost čeká na vyřízení – stav je "probíhá"
  • Sloučit po vytvoření nevyřízené žádosti pomocí vystavitele (například DigiCert)
  • Požádat o zrušení, zatímco stav žádosti čeká na "probíhá"
  • Odstranění objektu žádosti čeká na vyřízení
  • Ruční vytvoření certifikátu KV
  • Sloučení při vytvoření nevyřízené žádosti – ruční vytvoření certifikátu

Požádat o certifikát 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" byl již k dispozici ve vašem trezoru klíčů s poskytovatelem vystavitele jako DigiCert. Vystavitel certifikátu je entita reprezentovaná v Azure Key Vault (KV) jako prostředek CertificateIssuer. Slouží k poskytnutí informací o zdroji certifikátu KV; název vystavitele, poskytovatel, 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"
}

Žádost o přijetí žádosti – stav žádosti je "probíhá"

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

Žádost

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

NEBO

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

Poznámka

Pokud je v dotazu zadána request_id , funguje jako filtr. Pokud request_id v dotazu a v objektu, který čeká na vyřízení, se vrátí 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"
}

Žádost o získání žádosti čeká na dokončení.

Žádost

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

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

NEBO

Čtěte “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}"
}

Čeká se na vyřízení žádosti – stav žádosti čeká na zrušení nebo chyba.

Žádost

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

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

NEBO

Čtěte “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 ErrorCode může být "Chyba vystavitele certifikátu" nebo "žádost zamítnutá" na základě chyby vystavitele nebo uživatele.

Žádost o přijetí žádosti – stav žádosti čekají na odstranění nebo přepsání

Objekt, který čeká na vyřízení, může být odstraněn nebo přepsán operací vytvořit/importovat, pokud jeho stav není "probíhá".

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

Žádost

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

NEBO

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

Odpověď

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

Vytvořit (nebo importovat) v případě, že žádost čeká na vyřízení – stav je "probíhá"

Objekt, který čeká na vyřízení, má čtyři možné stavy; "InProgress", "Canceled", "Failed" nebo "Completed".

Pokud je stav probíhající žádosti "probíhá", operace vytvoření (a importu) selžou se stavovým kódem HTTP 409 (konflikt).

Postup při opravě konfliktu:

  • Pokud se certifikát vytváří ručně, můžete dokončit jeho provedení sloučením nebo odstraněním u objektu, který čeká na vyřízení.

  • Pokud se certifikát vytváří pomocí vystavitele, můžete počkat, až se certifikát dokončí, dojde k chybě nebo je zrušený. Alternativně můžete odstranit objekt, který čeká na vyřízení.

Poznámka

Odstranění objektu, který čeká na vyřízení, může nebo nemusí zrušit žádost o certifikát x509 u poskytovatele.

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čit po vytvoření nevyřízené žádosti s vystavitelem

Sloučení není povoleno, pokud je objekt s vystavitelem vytvořen, ale je povolen, když je jeho stav "probíhá".

Pokud se žádost o vytvoření certifikátu x509 nezdařila nebo se z nějakého důvodu zruší, a pokud se certifikát x509 dá načíst pomocí vzdálené správy, může se provést operace sloučení, která dokončí certifikát KV.

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."
  }
}

Požádat o zrušení, zatímco stav žádosti čeká na "probíhá"

Zrušení může být požadováno pouze. Požadavek se může nebo nemusí zrušit. Pokud žádost není "neprůběh", vrátí se stav HTTP 400 (chybný požadavek).

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

Žádost

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

NEBO

POUŽITA “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í objektu žádosti čeká na vyřízení

Poznámka

Odstranění objektu, který čeká na vyřízení, může nebo nemusí zrušit žádost o certifikát x509 u poskytovatele.

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

Žádost

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

NEBO

DSTRANIT “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 vydaný s vámi zvolenou certifikační autoritou můžete vytvořit prostřednictvím procesu ručního vytvoření. Nastavte název vystavitele na "Neznámý" nebo nezadávejte pole Issuer.

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í nevyřízené žá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 <introducing version> Ř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
        }
    }
}