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