Memantau dan mengelola pembuatan sertifikat

Berlaku Untuk: Azure

Skenario/operasi yang diuraikan dalam artikel ini adalah:

  • Meminta Sertifikat KV dengan pengeluar sertifikat yang didukung
  • Dapatkan permintaan tertunda - status permintaan adalah "inProgress"
  • Dapatkan permintaan tertunda - status permintaan adalah "complete"
  • Dapatkan permintaan tertunda - status permintaan tertunda adalah "canceled" atau "failed"
  • Dapatkan permintaan tertunda - status permintaan tertunda adalah "deleted" atau "overwritten"
  • Buat (atau Impor) ketika ada permintaan tertunda - statusnya adalah "inProgress"
  • Gabungkan ketika permintaan tertunda dibuat dengan pengeluar sertifikat (DigiCert, misalnya)
  • Meminta pembatalan saat status permintaan tertunda adalah "inProgress"
  • Menghapus objek permintaan yang tertunda
  • Membuat sertifikat KV secara manual
  • Gabungkan ketika permintaan tertunda dibuat - pembuatan sertifikat manual

Meminta Sertifikat KV dengan pengeluar sertifikat yang didukung

Metode URI Permintaan
KIRIM https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Contoh berikut memerlukan objek bernama "mydigicert" agar sudah tersedia di vault kunci Anda dengan penyedia pengeluar sertifikat sebagai DigiCert. Pengeluar sertifikat adalah entitas yang diwakili dalam Azure Key Vault (KV) sebagai sumber daya CertificateIssuer. Ini digunakan untuk memberikan informasi tentang sumber sertifikat KV; nama penerbit, penyedia, kredensial, dan detail administratif lainnya.

Minta

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

Respons

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

Dapatkan permintaan tertunda - status permintaan adalah "inProgress"

Metode URI Permintaan
DAPATKAN https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Minta

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

ATAU

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

Catatan

Jika request_id ditentukan dalam kueri, hal itu bertindak seperti filter. Jika request_id dalam kueri dan di objek yang tertunda berbeda, kode status http 404 dikembalikan.

Respons

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

Dapatkan permintaan tertunda - status permintaan adalah "complete"

Minta

Metode URI Permintaan
DAPATKAN https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

ATAU

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

Respons

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

Dapatkan permintaan tertunda - status permintaan tertunda adalah "canceled" atau "failed"

Minta

Metode URI Permintaan
DAPATKAN https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

ATAU

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

Respons

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

Catatan

Nilai errorcode dapat berupa "Certificate issuer error" atau "Request rejected" berdasarkan pengeluar sertifikat atau kesalahan pengguna masing-masing.

Dapatkan permintaan tertunda - status permintaan tertunda adalah "deleted" atau "overwritten"

Objek yang tertunda dapat dihapus atau ditimpa oleh operasi buat/impor saat statusnya bukan inProgress.

Metode URI Permintaan
DAPATKAN https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Minta

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

ATAU

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

Respons

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

Buat (atau Impor) ketika ada permintaan tertunda - statusnya adalah "inProgress"

Objek yang tertunda memiliki empat status yang bisa terjadi; "inprogress", "canceled", "failed", atau "completed".

Ketika status permintaan yang tertunda adalah "inprogress", operasi buat (dan impor) akan gagal dengan kode status http 409 (konflik).

Untuk memperbaiki konflik:

  • Jika sertifikat sedang dibuat secara manual, Anda dapat menyelesaikan sertifikat KV dengan melakukan penggabungan atau penghapusan pada objek yang tertunda.

  • Jika sertifikat sedang dibuat dengan pengeluar sertifikat, Anda bisa menunggu hingga sertifikat selesai, gagal atau dibatalkan. Atau, Anda dapat menghapus objek yang tertunda.

Catatan

Menghapus objek yang tertunda bisa membatalkan permintaan sertifikat x509 dengan penyedia.

Metode URI Permintaan
KIRIM https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Minta

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

Respons

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

Menggabungkan ketika permintaan tertunda dibuat dengan pengeluar sertifikat

Penggabungan tidak diperbolehkan ketika objek yang tertunda dibuat dengan pengeluar sertifikat tetapi diizinkan ketika statusnya adalah inProgress.

Jika permintaan untuk membuat sertifikat x509 gagal atau dibatalkan karena suatu alasan, dan jika sertifikat x509 dapat diambil dengan cara di luar band, operasi penggabungan dapat dilakukan untuk menyelesaikan sertifikat KV.

Metode URI Permintaan
KIRIM https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

Minta

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

Respons

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

Meminta pembatalan saat status permintaan tertunda adalah "inProgress"

Pembatalan hanya dapat diminta. Permintaan bisa dibatalkan. Jika permintaan bukan "inProgress", status http 400 (Permintaan Buruk) dikembalikan.

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

Minta

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

ATAU

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

{
  "cancellation_requested": true
}

Respons

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

Menghapus objek permintaan yang tertunda

Catatan

Menghapus objek yang tertunda bisa membatalkan permintaan sertifikat x509 dengan penyedia.

Metode URI Permintaan
HAPUS https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

Minta

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

ATAU

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

Respons

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

Membuat sertifikat KV secara manual

Anda dapat membuat sertifikat yang dikeluarkan dengan CA pilihan Anda melalui proses pembuatan manual. Atur nama penerbit ke "Tidak Diketahui" atau jangan tentukan bidang pengeluar sertifikat.

Metode URI Permintaan
KIRIM https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

Minta

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

Respons

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

Gabungkan ketika permintaan tertunda dibuat - pembuatan sertifikat manual

Metode URI Permintaan
KIRIM https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

Minta

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

Nama elemen Diperlukan Jenis Versi Deskripsi
x5c Ya array <memperkenalkan versi> Rantai sertifikat X509 sebagai array string base-64.

Respons

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