Het maken van certificaten controleren en beheren

Van toepassing op: Azure

De scenario's/bewerkingen die in dit artikel worden beschreven, zijn:

  • Een KV-certificaat aanvragen bij een ondersteunde verlener
  • Aanvraag in behandeling ophalen - aanvraagstatus is 'inProgress'
  • Aanvraag in behandeling ophalen - aanvraagstatus is 'voltooid'
  • Aanvraag in behandeling ophalen- status van aanvraag in behandeling is 'geannuleerd' of 'mislukt'
  • Aanvraag in behandeling ophalen- status van aanvraag in behandeling is 'verwijderd' of 'overschreven'
  • Maken (of importeren) wanneer een aanvraag in behandeling is, de status is 'inProgress'
  • Samenvoegen wanneer een aanvraag in behandeling is gemaakt met een verlener (bijvoorbeeld DigiCert)
  • Een annulering aanvragen terwijl de status van de aanvraag in behandeling 'inProgress' is
  • Een aanvraagobject in behandeling verwijderen
  • Handmatig een KV-certificaat maken
  • Samenvoegen wanneer een aanvraag in behandeling is gemaakt - handmatig certificaat maken

Een KV-certificaat aanvragen bij een ondersteunde verlener

Methode Aanvraag-URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

In de volgende voorbeelden moet een object met de naam 'mydigicert' al beschikbaar zijn in uw sleutelkluis met de provider van de verlener als DigiCert. De certificaatverlener is een entiteit die in Azure Key Vault (KV) wordt weergegeven als een CertificateIssuer-resource. Het wordt gebruikt om informatie te geven over de bron van een KV-certificaat; naam, provider, referenties en andere beheergegevens van de verlener.

Aanvraag

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

Antwoord

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

Aanvraag in behandeling ophalen - aanvraagstatus is 'inProgress'

Methode Aanvraag-URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Aanvraag

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

OF

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

Notitie

Als request_id is opgegeven in de query, fungeert deze als een filter. Als de request_id in de query en in het object in behandeling verschillen, wordt de HTTP-statuscode 404 geretourneerd.

Antwoord

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

Aanvraag in behandeling ophalen - aanvraagstatus is 'voltooid'

Aanvraag

Methode Aanvraag-URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

OF

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

Antwoord

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

Aanvraag in behandeling ophalen- status van aanvraag in behandeling is 'geannuleerd' of 'mislukt'

Aanvraag

Methode Aanvraag-URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

OF

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

Antwoord

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

Notitie

De waarde van de foutcode kan 'Fout certificaatverlener' of 'Aanvraag geweigerd' zijn op basis van respectievelijk de fout van de verlener of de gebruiker.

Aanvraag in behandeling ophalen- status van aanvraag in behandeling is 'verwijderd' of 'overschreven'

Een in behandeling zijnde object kan worden verwijderd of overschreven door een maak-/importbewerking wanneer de status niet inProgressis.

Methode Aanvraag-URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Aanvraag

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

OF

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

Antwoord

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

Maken (of importeren) wanneer een aanvraag in behandeling is, de status is 'inProgress'

Een object in behandeling heeft vier mogelijke statussen; 'inprogress', 'canceled', 'failed' of 'completed'.

Wanneer de status van een aanvraag in behandeling 'inprogress' is, mislukken de bewerkingen voor maken (en importeren) met de HTTP-statuscode 409 (conflict).

Een conflict oplossen:

  • Als het certificaat handmatig wordt gemaakt, kunt u het KV-certificaat voltooien door een samenvoeging uit te voeren of het object in behandeling te verwijderen.

  • Als het certificaat wordt gemaakt met een verlener, kunt u wachten totdat het certificaat is voltooid, mislukt of wordt geannuleerd. U kunt ook het object in behandeling verwijderen.

Notitie

Als u een object in behandeling verwijdert, kan de x509-certificaataanvraag bij de provider al dan niet worden geannuleerd.

Methode Aanvraag-URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Aanvraag

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

Antwoord

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

Samenvoegen wanneer aanvraag in behandeling is gemaakt met een verlener

Samenvoegen is niet toegestaan wanneer een in behandeling zijnde object wordt gemaakt met een verlener, maar wel is toegestaan wanneer de status ervan is inProgress.

Als de aanvraag voor het maken van het x509-certificaat om de een of andere reden mislukt of wordt geannuleerd en als een x509-certificaat kan worden opgehaald met out-of-band-middelen, kan een samenvoegbewerking worden uitgevoerd om het KV-certificaat te voltooien.

Methode Aanvraag-URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

Aanvraag

{
  "x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}

Antwoord

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

Een annulering aanvragen terwijl de status van de aanvraag in behandeling 'inProgress' is

Een annulering kan alleen worden aangevraagd. Een aanvraag kan al dan niet worden geannuleerd. Als een aanvraag niet 'inProgress' is, wordt de HTTP-status 400 (Ongeldige aanvraag) geretourneerd.

Methode Aanvraag-URI
PATCH https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Aanvraag

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

OF

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

{
  "cancellation_requested": true
}

Antwoord

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

Een aanvraagobject in behandeling verwijderen

Notitie

Als u het object in behandeling verwijdert, kan de x509-certificaataanvraag bij de provider al dan niet worden geannuleerd.

Methode Aanvraag-URI
DELETE https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Aanvraag

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

OF

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

Antwoord

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

Handmatig een KV-certificaat maken

U kunt een certificaat maken dat is uitgegeven met een CA van uw keuze via een handmatige aanmaakprocedure. Stel de naam van de verlener in op Onbekend of geef het verlenerveld niet op.

Methode Aanvraag-URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Aanvraag

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

Antwoord

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

Samenvoegen wanneer een aanvraag in behandeling is gemaakt - handmatig certificaat maken

Methode Aanvraag-URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

Aanvraag

{
  "x5c": [ "MIICxTCCAbi………………………trimmed for brevitiy……………………………………………EPAQj8=" ]
}

Elementnaam Vereist Type Versie Beschrijving
x5c Yes matrix <introductie van versie> X509-certificaatketen als base 64-tekenreeksmatrix.

Antwoord

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