أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
توضّح هذه المستندات كيفية إنشاء ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها وتعديلها وحذفها لإصدارَي Edge for the Cloud وEdge for the Private Cloud 4.18.01 والإصدارات الأحدث.
مقدمة
لضبط وظائف تعتمد على البنية الأساسية للمفتاح العام، مثل بروتوكول أمان طبقة النقل (TLS)، عليك إنشاء ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها التي توفّر المفاتيح والشهادات الرقمية اللازمة.
للحصول على مقدّمة عن ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها والأسماء المستعارة، يُرجى الاطّلاع على مقالة ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها.
إنشاء ملف تخزين مفاتيح
يكون ملف تخزين المفاتيح خاصًا ببيئة في مؤسستك، مثل بيئة الاختبار أو بيئة الإنتاج. لذلك، إذا أردت اختبار ملف تخزين المفاتيح في بيئة اختبار قبل نشره في بيئة التشغيل الفعلي، عليك إنشاؤه في كلتا البيئتَين.
لإنشاء ملف تخزين مفاتيح في بيئة، اتّبِع الخطوات التالية:
- استخدِم طلب بيانات من واجهة برمجة التطبيقات في هذا القسم لإنشاء ملف تخزين المفاتيح.
- أنشِئ اسمًا مستعارًا وحمِّل زوجًا من الشهادات والمفاتيح إلى الاسم المستعار. تستند طريقة تحميل الشهادة والمفتاح إلى تنسيق زوج الشهادات والمفاتيح. توضّح الأقسام التالية كيفية تحميل كل نوع من أزواج الشهادات والمفاتيح:
لإنشاء ملف تخزين مفاتيح، حدِّد اسم ملف تخزين المفاتيح لواجهة برمجة التطبيقات Create a Keystore or Truststore. لا يمكن أن يحتوي اسم ملف تخزين المفاتيح إلا على أحرف أبجدية رقمية:
curl -X POST -u orgAdminEmail:password -H "Content-Type: text/xml" \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores \
-d '<KeyStore name="myKeystore"/>'نموذج للردّ:
{ "certs" : [ ], "keys" : [ ], "name" : "myKeystore" }
تحميل شهادة ومفتاح كملف JAR
عليك أولاً إنشاء ملف JAR يتضمّن مفتاحك الخاص وشهادتك وبيانًا. يجب أن يحتوي ملف JAR على الملفات والأدلة التالية:
/META-INF/descriptor.properties myCert.pem myKey.pem
يمكن أن يحتوي ملف JAR لتخزين المفاتيح على هذه الملفات الثلاثة فقط. إذا كانت لديك سلسلة شهادات، يجب إلحاق جميع الشهادات في السلسلة بملف PEM واحد، ويجب أن تكون الشهادة الأخيرة موقَّعة من هيئة إصدار شهادات جذر. يجب إلحاق الشهادات بملف PEM بالترتيب الصحيح، مع ترك سطر فارغ بين كل شهادة، ما يعني:
cert -> intermediate cert(1) -> intermediate cert(2) -> … -> root
في الدليل الذي يحتوي على زوج المفاتيح والشهادة، أنشِئ دليلاً باسم
/META-INF. بعد ذلك، أنشِئ ملفًا باسم descriptor.properties في
/META-INF يتضمّن المحتوى التالي:
certFile={myCertificate}.pem keyFile={myKey}.pem
أنشِئ ملف JAR الذي يحتوي على زوج المفاتيح والشهادة:
jar -cf myKeystore.jar myCert.pem myKey.pem
أضِف descriptor.properties إلى
ملف JAR:
jar -uf myKeystore.jar META-INF/descriptor.properties
يمكنك الآن تحميل ملفات JAR التي تحتوي على شهادة ومفتاح خاص باستخدام واجهة برمجة التطبيقات Create an alias from a JAR or PKCS file:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F file="@myKeystore.jar" -F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=keycertjar"
يشير الخيار -F إلى مسار ملف JAR.
في هذا الطلب، عليك تحديد ما يلي:
alias_name: يحدّد الشهادة والمفتاح في ملف تخزين المفاتيح. عند إنشاء مضيف افتراضي، يمكنك الإشارة إلى الشهادة والمفتاح باسمهما المستعار.key_pword: كلمة مرور المفتاح الخاص. يمكنك حذف هذه المَعلمة إذا لم يكن للمفتاح الخاص كلمة مرور.
تأكَّد من تحميل ملف تخزين المفاتيح بشكلٍ صحيح:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
نموذج للردّ:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
تحميل شهادة ومفتاح كملفات PEM
يمكنك تحميل ملفات PEM التي تحتوي على شهادة ومفتاح خاص باستخدام واجهة برمجة التطبيقات Create an alias from certificate and key PEM files:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F keyFile="@server.key" -F certFile="@signed.crt" \
-F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=keycertfile"
يشير الخيار -F إلى مسارات ملفات PEM.
في هذا الطلب، عليك تحديد ما يلي:
alias_name: يحدّد الشهادة والمفتاح في ملف تخزين المفاتيح. عند إنشاء مضيف افتراضي، يمكنك الإشارة إلى الشهادة والمفتاح باسمهما المستعار.key_pword: كلمة مرور المفتاح الخاص. يمكنك حذف هذه المَعلمة إذا لم يكن للمفتاح الخاص كلمة مرور.
تأكَّد من تحميل ملف تخزين المفاتيح بشكلٍ صحيح:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
نموذج للردّ:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
تحميل شهادة ومفتاح كملف PKCS12/PFX
يمكنك تحميل ملف PKCS12/PFX الذي يحتوي على شهادة ومفتاح خاص باستخدام واجهة برمجة التطبيقات Create an alias from a JAR or PKCS file API:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" \
-F file="@myKeystore.p12" -F password={key_pword} \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?alias={alias_name}&format=pkcs12"
يشير الخيار -F إلى مسار ملف P12.
في هذا الطلب، عليك تحديد ما يلي:
alias_name: يحدّد الشهادة والمفتاح في ملف تخزين المفاتيح. عند إنشاء مضيف افتراضي، يمكنك الإشارة إلى الشهادة والمفتاح باسمهما المستعار.key_pword: كلمة مرور المفتاح الخاص. يمكنك حذف هذه المَعلمة إذا لم يكن للمفتاح الخاص كلمة مرور.
تأكَّد من تحميل ملف تخزين المفاتيح بشكلٍ صحيح:
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}
نموذج للردّ:
{ "certs" : [ "myCertificate" ], "keys" : [ "myKey" ], "name" : "myKeystore" }
إنشاء شهادة ومفتاح موقَّعين ذاتيًا وتحميلهما
يمكنك استخدام واجهة برمجة التطبيقات Create an alias by generating a self-signed certificate لإنشاء شهادة ومفتاح موقَّعين ذاتيًا وتحميلهما إلى اسم مستعار. لا يحدّد الطلب التالي سوى المعلومات المطلوبة لـ إنشاء الشهادة الموقَّعة ذاتيًا. يمكنك تعديل هذا الطلب لإضافة معلومات إضافية:
curl -u orgAdminEmail:password -X POST --header "Content-Type: application/json" \
-d "{
"alias": "selfsigned",
"subject": {
"commonName": "mycert"
}
}" \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases?format=selfsignedcert"
من المفترض أن يظهر الردّ على النحو التالي:
{ "alias": "selfsigned", "certsInfo": { "certInfo": [ { "basicConstraints": "CA:FALSE", "expiryDate": 1491497204000, "isValid": "Yes", "issuer": "CN=mycert", "publicKey": "RSA Public Key, 2048 bits", "serialNumber": "00:d1:b4:78:e1", "sigAlgName": "SHA256withRSA", "subject": "CN=mycert", "subjectAlternativeNames": [], "validFrom": 1459961204000, "version": 3 } ], "certName": "selfsigned-cert" }, "keyName": "selfsigned" }
إنشاء ملف تخزين شهادات موثوق بها
تتشابه واجهات برمجة التطبيقات التي تستخدمها لإنشاء ملف تخزين شهادات موثوق بها مع واجهات برمجة التطبيقات التي تستخدمها لإنشاء ملف تخزين مفاتيح. الاختلاف الوحيد هو أنّه يمكنك تحميل ملف شهادة فقط، كملف PEM، إلى ملف تخزين الشهادات الموثوق بها.
إذا كانت الشهادة جزءًا من سلسلة، عليك إما تحميل جميع الشهادات في السلسلة بشكل منفصل إلى ملف تخزين الشهادات الموثوق بها، أو إنشاء ملف واحد يحتوي على جميع الشهادات. عليك إدراج سطر فارغ بين كل شهادة في الملف.
إذا أردت تحميل شهادات متعددة موقَّعة ذاتيًا وليست جزءًا من سلسلة، استخدِم الط101}ريقة نفسها: إذا كانت هناك شهادات متعددة تريد الوثوق بها، حمِّلها في ملف واحد.
عادةً ما تكون الشهادة النهائية موقَّعة من جهة إصدار الشهادة. على سبيل المثال، في ملف تخزين الشهادات الموثوق بها، يمكنك تحميل شهادة عميل،client_cert_1، وشهادة جهة إصدار شهادة العميل،ca_cert.
أثناء المصادقة الثنائية لبروتوكول أمان طبقة النقل (TLS)، تنجح مصادقة العميل عندما يرسل الخادم client_cert_1 إلى العميل كجزء من عملية تبادل بيانات بروتوكول أمان طبقة النقل (TLS).
بدلاً من ذلك، لديك شهادة ثانية، client_cert_2، موقَّعة من الشهادة نفسها، ca_cert. ومع ذلك، لا يمكنك تحميل client_cert_2 إلى ملف تخزين الشهادات الموثوق بها. لا يزال ملف تخزين الشهادات الموثوق بها يحتوي على client_cert_1 وca_cert.
عندما يمرِّر الخادم client_cert_2 كجزء من عملية تبادل بيانات بروتوكول أمان طبقة النقل (TLS)، ينجح الطلب. يرجع ذلك إلى أنّ Edge يسمح بنجاح عملية التحقّق من بروتوكول أمان طبقة النقل (TLS) عندما لا تكون client_cert_2 موجودة في ملف تخزين الشهادات الموثوق بها ولكن تم توقيعها من شهادة موجودة في ملف تخزين الشهادات الموثوق بها. إذا أزلت شهادة هيئة إصدار الشهادات ، ca_cert، من ملف تخزين الشهادات الموثوق بها، ستفشل عملية التحقّق من بروتوكول أمان طبقة النقل (TLS).
أنشِئ ملف تخزين شهادات موثوق بها فارغًا في البيئة باستخدام Create a Keystore or Truststore، وهي واجهة برمجة التطبيقات نفسها التي تستخدمها لإنشاء ملف تخزين مفاتيح:
curl -u orgAdminEmail:password -X POST -H "Content-Type: text/xml" \
-d '<KeyStore name="myTruststore"/>' \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores
بعد إنشاء ملف تخزين الشهادات الموثوق بها، حمِّل الشهادة كملف PEM إلى ملف تخزين الشهادات الموثوق بها باستخدام واجهة برمجة التطبيقات Create an alias from a certificate PEM file:
curl -u orgAdminEmail:password -X POST -H "Content-Type: multipart/form-data" -F certFile="@cert.pem" \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myTruststore/aliases?alias=myTruststore&format=keycertfile"
يشير الخيار -F إلى مسار ملف PEM.
الحصول على تفاصيل حول ملف تخزين مفاتيح أو ملف تخزين شهادات موثوق بها حالي
تحقَّق من البيئة بحثًا عن أي ملفات تخزين مفاتيح حالية باستخدام واجهة برمجة التطبيقات List Keystores and Truststores:
curl -u orgAdminEmail:password -X GET \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores
بالنسبة إلى عملاء Cloud، يتم توفير ملف تخزين مفاتيح تلقائي مجانًا لمؤسسات الفترة التجريبية المجانية في كل من البيئتين الاختبار والإنتاج. من المفترض أن تظهر لك النتائج التالية لهذا الطلب في كلتا البيئتَين:
[ "freetrial" ]
يمكنك استخدام ملف تخزين المفاتيح التلقائي هذا لاختبار واجهات برمجة التطبيقات ونشرها في بيئة الإنتاج، ولكنك تنشئ عادةً ملف تخزين المفاتيح الخاص بك، باستخدام الشهادة والمفتاح الخاصَين بك، قبل النشر في بيئة الإنتاج.
بالنسبة إلى عملاء Private Cloud، تكون المصفوفة التي يتم عرضها فارغة إلى أن تنشئ ملف تخزين المفاتيح الأول.
تحقَّق من محتويات ملف تخزين المفاتيح باستخدام واجهة برمجة التطبيقات Get a Keystore or Truststore. بالنسبة إلى عميل Cloud، من المفترض أن تظهر لك شهادة واحدة لبروتوكول أمان طبقة النقل (TLS) للخادم، وهي الشهادة التلقائية التي يوفّرها Apigee Edge لحسابات الفترة التجريبية المجانية.
curl -u orgAdminEmail:password -X GET\
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/freetrial
من المفترض أن يظهر الردّ على النحو التالي:
{ "certs" : [ "wildcard.apigee.net.crt" ], "keys" : [ "freetrial" ], "name" : "freetrial" }
الحصول على تفاصيل حول اسم مستعار
احصل على قائمة بجميع الأسماء المستعارة لملفات تخزين المفاتيح باستخدام واجهة برمجة التطبيقات List aliases:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases"
من المفترض أن يظهر الردّ على النحو التالي:
[ "alias1", "alias2", "alias3", ]
للحصول على جميع المعلومات عن اسم مستعار، مثل تاريخ انتهاء الصلاحية وجهة الإصدار، استخدِم واجهة برمجة التطبيقات Get alias وحدِّد اسم الاسم المستعار:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}"
من المفترض أن يظهر الردّ على النحو التالي:
{ "alias": "alias1", "certsInfo": { "certInfo": [ { "basicConstraints": "CA:TRUE", "expiryDate": 1459371335000, "isValid": "No", "issuer": "EMAILADDRESS=foo@bar.com, CN=smg, OU=doc, O=Internet Widgits Pty Ltd, L=noho, ST=Some-State, C=AU", "publicKey": "RSA Public Key, 1024 bits", "serialNumber": "00:86:a0:9b:5b:91:a9:fe:92", "sigAlgName": "SHA256withRSA", "subject": "EMAILADDRESS=foo@bar.com, CN=smg, OU=doc, O=Internet Widgits Pty Ltd, L=noho, ST=Some-State, C=AU", "subjectAlternativeNames": [], "validFrom": 1456779335000, "version": 3 } ], "certName": "new\-cert" }, "keyName": "newssl20" }
لتنزيل الشهادة لاسم مستعار، استخدِم واجهة برمجة التطبيقات Export a certificate for an alias:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/e/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}/certificate"
من المفترض أن يظهر الردّ على النحو التالي:
-----BEGIN CERTIFICATE----- MIIDojCCAwugAwIBAgIJAIagm1uRqf6SMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD ... RBUkaTe/570sLHY0tvkIm5tEX36ESw== -----END CERTIFICATE-----
إذا كانت لديك شهادة منتهية الصلاحية وأردت تجديدها، يمكنك تنزيل طلب توقيع شهادة (CSR). بعد ذلك، أرسِل طلب توقيع الشهادة إلى هيئة إصدار الشهادات للحصول على شهادة جديدة. لإنشاء طلب توقيع شهادة لاسم مستعار، استخدِم واجهة برمجة التطبيقات Generate a CSR for an alias API:
curl -u orgAdminEmail:password -X GET \
"https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/{keystore_name}/aliases/{alias_name}/csr"
من المفترض أن يظهر الردّ على النحو التالي:
-----BEGIN CERTIFICATE REQUEST----- MIIB1DCCAT0CAQAwgZMxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRl ... RF5RMytbkxkvPxIE17mDKJH0d8aekv/iEOItZ+BtQg+EibMUkkjTzQ== -----END CERTIFICATE REQUEST-----
إضافة شهادة إلى ملف تخزين شهادات موثوق بها للمصادقة الثنائية لبروتوكول أمان طبقة النقل (TLS)
عند استخدام المصادقة الثنائية لبروتوكول أمان طبقة النقل (TLS) لـ الاتصالات الواردة، ما يعني طلب واجهة برمجة تطبيقات في Edge، يحتوي ملف تخزين الشهادات الموثوق بها على شهادة أو سلسلة شهادات لهيئة إصدار الشهادات لكل عميل مسموح له بإرسال طلبات إلى Edge.
عند ضبط ملف تخزين الشهادات الموثوق بها في البداية، يمكنك إضافة جميع الشهادات للعملاء المعروفين. ومع ذلك، بمرور الوقت، قد تحتاج إلى إضافة شهادات إضافية إلى ملف تخزين الشهادات الموثوق بها عند إضافة عملاء جدد.
لإضافة شهادات جديدة إلى ملف تخزين شهادات موثوق بها مستخدَم للمصادقة الثنائية لبروتوكول أمان طبقة النقل (TLS):
- تأكَّد من استخدام مرجع إلى ملف تخزين الشهادات الموثوق بها في المضيف الافتراضي.
- حمِّل شهادة جديدة إلى ملف تخزين الشهادات الموثوق بها كما هو موضّح أعلاه في إنشاء ملف تخزين شهادات موثوق بها.
عدِّل مرجع ملف تخزين الشهادات الموثوق بها لضبطه على القيمة نفسها. يؤدي هذا التعديل إلى إعادة تحميل Edge لملف تخزين الشهادات الموثوق بها والشهادة الجديدة.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تعديل مرجع.
حذف ملف تخزين مفاتيح/ملف تخزين شهادات موثوق بها أو اسم مستعار
يجب توخّي الحذر عند حذف ملف تخزين مفاتيح/ملف تخزين شهادات موثوق بها أو اسم مستعار. إذا حذفت ملف تخزين مفاتيح، ملف تخزين شهادات موثوق بها، أو اسمًا مستعارًا مستخدَمًا من قِبل مضيف افتراضي أو نقطة نهاية مستهدَفة أو خادم مستهدَف، ستفشل جميع طلبات واجهة برمجة التطبيقات من خلال المضيف الافتراضي أو نقطة النهاية المستهدَفة/الخادم المستهدَف.
عادةً ما تكون العملية التي تستخدمها لحذف ملف تخزين مفاتيح/ملف تخزين شهادات موثوق بها أو اسم مستعار كما يلي:
- أنشِئ ملف تخزين مفاتيح/ملف تخزين شهادات موثوق بها أو اسمًا مستعارًا جديدًا كما هو موضّح أعلاه.
- بالنسبة إلى الاتصالات الواردة، ما يعني طلب واجهة برمجة تطبيقات في Edge، عدِّل إعداد المضيف الافتراضي للإشارة إلى ملف تخزين المفاتيح الجديد والاسم المستعار للمفتاح.
- بالنسبة إلى الاتصالات الصادرة، ما يعني من Apigee إلى خادم الخلفية:
- عدِّل إعداد TargetEndpoint لأي خوادم وكيلة لواجهة برمجة التطبيقات كانت تشير إلى ملف تخزين المفاتيح القديم والاسم المستعار للمفتاح للإشارة إلى ملف تخزين المفاتيح الجديد والاسم المستعار للمفتاح. إذا كانت نقطة النهاية المستهدَفة تشير إلى خادم مستهدَف، عدِّل تعريف الخادم المستهدَف للإشارة إلى ملف تخزين المفاتيح الجديد والاسم المستعار للمفتاح.
- إذا تمت الإشارة إلى ملف تخزين المفاتيح وملف تخزين الشهادات الموثوق بها مباشرةً من تعريف TargetEndpoint ، عليك إعادة نشر الخادم الوكيل. إذا كانت نقطة النهاية المستهدَفة تشير إلى تعريف خادم مستهدَف، وكان تعريف الخادم المستهدَف يشير إلى ملف تخزين المفاتيح وملف تخزين الشهادات الموثوق بها، لن تكون هناك حاجة إلى إعادة نشر الخادم الوكيل.
- تأكَّد من أنّ خوادمك الوكيلة لواجهة برمجة التطبيقات تعمل بشكلٍ صحيح.
- احذف ملف تخزين المفاتيح/ملف تخزين الشهادات الموثوق بها أو الاسم المستعار.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تعديل الشهادة في اسم مستعار.
حذف ملف تخزين مفاتيح أو ملف تخزين شهادات موثوق بها
يمكنك حذف ملف تخزين مفاتيح أو ملف تخزين شهادات موثوق بها باستخدام واجهة برمجة التطبيقات Delete a Keystore or Truststore:
curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName
إذا حذفت وأعدت إنشاء ملف تخزين مفاتيح أو ملف تخزين شهادات موثوق بها مستخدَم من قِبل مضيف افتراضي، ثم عليك إعادة نشر خوادمك الوكيلة لواجهة برمجة التطبيقات.
حذف اسم مستعار
يمكنك حذف اسم مستعار في ملف تخزين مفاتيح أو ملف تخزين شهادات موثوق بها باستخدام واجهة برمجة التطبيقات Delete alias:
curl -u orgAdminEmail:password -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/keystores/myKeystoreName/aliases/{alias_name}