مراقبة وإدارة إنشاء الشهادة

ينطبق على: Azure

السيناريوهات/ العمليات الموضحة في هذه المقالة هي:

  • اطلب شهادة KV مع مصدر معتمد
  • الحصول على طلب معلق - حالة الطلب "قيد التقدم"
  • الحصول على طلب معلق - حالة الطلب "مكتمل"
  • الحصول على طلب معلق - حالة الطلب المعلق "ملغاة" أو "فاشلة"
  • الحصول على طلب معلق - حالة الطلب المعلق "محذوف" أو "تم استبداله"
  • إنشاء (أو استيراد) عند وجود طلب معلق - الحالة "قيد التقدم"
  • الدمج عند إنشاء طلب معلق مع المُصدر (DigiCert، على سبيل المثال)
  • طلب الإلغاء عندما تكون حالة الطلب المعلق "قيد التنفيذ"
  • حذف عنصر طلب معلق
  • إنشاء شهادة KV يدوياً
  • الدمج عند إنشاء طلب معلق - إنشاء شهادة يدوياً

اطلب شهادة KV مع مصدر معتمد

الأسلوب طلب URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

تتطلب الأمثلة التالية وجود عنصر يسمى "mydigicert"؛ ليكون متاحاً بالفعل في خزينة المفاتيح الخاصة بك مع مزود المصدر باسم DigiCert. مُصدر الشهادة هو كيان ممثل في Azure Key Vault (KV) كمورد CertificateIssuer. يتم استخدامه لتوفير معلومات حول مصدر شهادة KV؛ اسم المصدر والموفر وبيانات الاعتماد والتفاصيل الإدارية الأخرى.

طلب

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

الاستجابة

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

الحصول على طلب معلق - حالة الطلب "قيد التقدم"

الأسلوب طلب URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

طلب

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

أو

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

ملاحظة

إذا تم تحديد request_id في الاستعلام، فسيكون بمثابة عامل تصفية. إذا كان request_id في الاستعلام، وفي العنصر المعلق مختلفاً، فسيتم عرض رمز حالة http لـ 404.

الاستجابة

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

الحصول على طلب معلق - حالة الطلب "مكتمل"

طلب

الأسلوب طلب URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

أو

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

الاستجابة

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

الحصول على طلب معلق - حالة الطلب المعلق "ملغاة" أو "فاشلة"

طلب

الأسلوب طلب URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

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

أو

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

الاستجابة

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

ملاحظة

قيمة errorcode قد تكون "Certificate issuer error"، أو "Request rejected" استناداً إلى جهة الإصدار، أو خطأ المستخدم على التوالي.

الحصول على طلب معلق - حالة الطلب المعلق "محذوف" أو "تم استبداله"

يمكن حذف كائن معلق أو الكتابة فوقه بواسطة عملية إنشاء/استيراد عندما لا inProgressتكون حالته .

الأسلوب طلب URI
GET https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

طلب

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

أو

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

الاستجابة

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

إنشاء (أو استيراد) عند وجود طلب معلق - الحالة "قيد التقدم"

العنصر المعلق له أربع حالات محتملة؛ "في تقدم" أو "تم إلغاؤه" أو "فشل" أو "مكتمل".

عندما تكون حالة الطلب المعلق "قيد التقدم"، ستفشل عمليات الإنشاء (والاستيراد) مع رمز حالة http 409 (تعارض).

لإصلاح التعارض:

  • إذا تم إنشاء الشهادة يدوياً، فيمكنك؛ إما إكمال شهادة KV عن طريق إجراء دمج أو حذف على العنصر المعلق.

  • إذا تم إنشاء الشهادة مع مُصدر، يمكنك الانتظار حتى تكتمل الشهادة أو تفشل أو يتم إلغاؤها. بدلاً من ذلك، يمكنك حذف العنصر المعلق.

ملاحظة

قد يؤدي حذف عنصر معلق إلى إلغاء طلب شهادة x509 مع الموفر، وقد لا يؤدي إلى ذلك.

الأسلوب طلب URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

طلب

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

الاستجابة

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

الدمج عند إنشاء طلب معلق مع المُصدر

لا يسمح بالدمج عند إنشاء كائن معلق مع مصدر ولكن يسمح به عندما تكون inProgressحالته .

إذا فشل طلب إنشاء شهادة x509 أو تم إلغاؤه لسبب ما، وإذا كان من الممكن استرداد شهادة x509 بوسائل خارج النطاق، فيمكن إجراء عملية دمج لإكمال شهادة KV.

الأسلوب طلب URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

طلب

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

الاستجابة

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

طلب الإلغاء عندما تكون حالة الطلب المعلق "قيد التنفيذ"

يمكن طلب الإلغاء فقط. قد يتم أو لا يتم إلغاء الطلب. إذا لم يكن الطلب "inProgress"، يتم إرجاع حالة http 400 (طلب غير صحيح).

الأسلوب طلب URI
تصحيح https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

طلب

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

أو

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

{
  "cancellation_requested": true
}

الاستجابة

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

حذف عنصر طلب معلق

ملاحظة

قد يؤدي حذف العنصر المعلق إلى إلغاء طلب شهادة x509 مع الموفر، وقد لا يؤدي إلى ذلك.

الأسلوب طلب URI
DELETE https://mykeyvault.vault.azure.net/certificates/mycert1/pending?api-version={api-version}

طلب

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

أو

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

الاستجابة

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

إنشاء شهادة KV يدوياً

يمكنك إنشاء شهادة صادرة من CA من اختيارك من خلال عملية إنشاء يدوية. قم بتعيين اسم المصدر إلى "غير معروف" أو لا تحدد حقل المصدر.

الأسلوب طلب URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/create?api-version={api-version}

طلب

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

الاستجابة

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

الدمج عند إنشاء طلب معلق - إنشاء شهادة يدوياً

الأسلوب طلب URI
POST https://mykeyvault.vault.azure.net/certificates/mycert1/pending/merge?api-version={api-version}

طلب

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

اسم العنصر مطلوب النوع إصدار الوصف
x5c نعم صفيف <تقديم الإصدار> سلسلة شهادات X509 كمصفوفة سلسلة 64 أساسية.

الاستجابة

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