إنشاء ملفات تخزين مفاتيح تشفير ومخازن موثوقة للإصدار 4.17.09 من Private Cloud والإصدارات الأقدم

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

يشرح هذا المستند كيفية إنشاء ملفات تخزين المفاتيح والمستودعات الموثوق بها وتعديلها وحذفها في Edge. للإصدار 4.17.09 والإصدارات الأقدم من Private Cloud

لمحة عن ملفات تخزين المفاتيح والمستودعات الموثوق بها

تُحدِّد ملفات تخزين المفاتيح والمستودعات الموثوق بها مستودعات شهادات الأمان المستخدَمة لبروتوكول أمان طبقة النقل (TLS). تشفير البيانات. ويتمثل الاختلاف الرئيسي بين الاثنين في مكان استخدامهما في تأكيد الاتصال عبر بروتوكول أمان طبقة النقل (TLS) المعالجة:

  • يحتوي ملف تخزين المفاتيح على شهادة بروتوكول أمان طبقة النقل (TLS) ومفتاح خاص يُستخدم لتحديد أثناء المصافحة عبر بروتوكول أمان طبقة النقل (TLS).

    في بروتوكول أمان طبقة النقل أحادي الاتجاه، عندما يتصل العميل بنقطة نهاية بروتوكول أمان طبقة النقل (TLS) على الخادم، يكون ملف تخزين مفاتيح الخادم يقدم شهادة الخادم (الشهادة العامة) للعميل. يتحقق العميل بعد ذلك من أن شهادة مع مرجع مصدق (CA)، مثل Symantec أو VeriSign.

    في بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه، يحتفظ كل من العميل والخادم بمخزن مفاتيح يشتمل على شهادة مفتاح خاص يُستخدم للمصادقة المتبادلة.
  • يحتوي المتجر الموثوق به على الشهادات المستخدمة لإثبات صحة الشهادات التي تم استلامها جزءًا من تأكيد اتصال بروتوكول أمان طبقة النقل (TLS).

    في بروتوكول أمان طبقة النقل (TLS) الأحادي الاتجاه، لا يكون مطلوبًا استخدام Truststore إذا كانت الشهادة موقَّعة من مرجع تصديق صالح. إذا كانت الشهادة التي يتلقّاها عميل بروتوكول أمان طبقة النقل (TLS) تكون موقَّعة من مرجع تصديق صالح، ثم يقدّم العميل طلبًا إلى هيئة إصدار الشهادات (CA) لمصادقة الشهادة. يستخدم عميل بروتوكول أمان طبقة النقل (TLS) عادةً مخزنًا موثوقًا به للتحقق من صحة البيانات الشهادات الموقعة ذاتيًا والتي تم استلامها من خادم بروتوكول أمان طبقة النقل (TLS)، أو الشهادات غير الموقعة بواسطة مرجع تصديق موثوق به. في هذا السيناريو، يملأ العميل Truststore بالشهادات التي يثق. وعندما يتلقى العميل شهادة خادم، يتم إرسال الشهادة تم التحقق منها وفقًا للشهادات في Truststore.

    على سبيل المثال، يتصل عميل بروتوكول أمان طبقة النقل (TLS) بخادم بروتوكول أمان طبقة النقل (TLS) حيث يستخدم الخادم بروتوكول أمان طبقة النقل (TLS) الشهادة. ولأنها شهادة موقعة ذاتيًا، لا يمكن للعميل التحقق من صحتها من خلال مرجع تصديق. وبدلاً من ذلك، يحمّل العميل مسبقًا شهادة الخادم الموقعة ذاتيًا في مخزن الثقة الخاص به. بعد ذلك، يُرجى اتّباع الخطوات التالية: عندما يحاول العميل الاتصال بالخادم، يستخدم مخزن الثقة الخاص به والتحقق من صحة الشهادة المستلمة من الخادم.

    بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه، يمكن لكل من عميل بروتوكول أمان طبقة النقل (TLS) وخادم بروتوكول أمان طبقة النقل (TLS) استخدام مخزن ثقة. مخزن شهادات عند تنفيذ بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه عندما يعمل Edge كخادم TLS.

ويمكن أن يتم إصدار الشهادات من مصدر تصديق، أو يمكن توقيعها ذاتيًا من قِبل مفتاح خاص تنشئه. إذا كان بإمكانك الوصول إلى مرجع تصديق، يُرجى اتّباع التعليمات المقدَّمة من مرجع تصديق لإنشاء المفاتيح وإصدار الشهادات. إذا لم يكن لديك إذن بالوصول إلى مرجع تصديق، يمكنك إنشاء شهادة موقعة ذاتيًا باستخدام إحدى الأدوات المجانية العديدة المتاحة للجمهور، مثل openssl.

يمكن أن يؤدي تنفيذ ملف تخزين المفاتيح وملف تخزين الثقة على Edge

في Edge، يحتوي ملف تخزين المفاتيح على ملف JAR واحد أو أكثر، حيث يحتوي ملف JAR على ما يلي:

  • شهادة بروتوكول أمان طبقة النقل (TLS) كملف PEM - إما شهادة موقعة بواسطة مرجع تصديق (CA)، أو سلسلة من الشهادات التي يتم فيها توقيع الشهادة الأخيرة من قبل مرجع تصديق (CA) أو شهادة موقعة ذاتيًا شهادة.
  • المفتاح الخاص كملف PEM يدعم Edge أحجام المفاتيح التي تصل إلى 2048 بت. عبارة المرور هي اختيارية.

يشبه ملف Truststore ملف تخزين مفاتيح باستثناء أنّه يحتوي على شهادات كملف PEM، ولا يحتوي على ومفاتيح خاصة.

إذا كانت الشهادة جزءًا من سلسلة، يجب أن يحتوي ملف تخزين المفاتيح أو التخزين الموثوق به على جميع الشهادات في سلسلة، إما كملفات PEM فردية أو كملف واحد. إذا كنت تستخدم ملفًا واحدًا، فعندئذ يجب يجب أن تكون الشهادات بالترتيب حيث تكون الشهادة الأولى في الملف هي الشهادة المستخدمة لبروتوكول أمان طبقة النقل (TLS) من خلال سلسلة الشهادات، من أجل شهادة CA. يجب إدراج سطر فارغ بين كل شهادة في الملف.

توفّر شبكة Edge واجهة برمجة تطبيقات تستخدمها لإنشاء ملفات تخزين المفاتيح والمستودعات الموثوق بها. واجهات برمجة التطبيقات الفعلية هي نَفْس ويتمثل الفرق بينهما في أنه عند إنشاء ملف تخزين مفاتيح، فإنك تمرر ملف JAR يحتوي على والمفتاح الخاص. عند إنشاء مخزن ثقة، يمكنك تمرير الشهادة فقط كملف PEM.

نبذة عن تنسيق ملفات الشهادة والمفتاح

توضح الأمثلة الواردة في هذا المستند شهادة بروتوكول أمان طبقة النقل (TLS) ومفتاحه المحددان كملفات PEM، وذلك وفقًا لمتطلبات بتنسيق X.509. إذا لم يتم تحديد الشهادة أو المفتاح الخاص من خلال ملف PEM، يمكنك تحويله إلى ملف PEM باستخدام أدوات مثل opensl.

ومع ذلك، هناك العديد من ملفات .crt وملفات .key بتنسيق PEM من قبل. إذا كانت هذه الملفات نصية ويتم تضمينها في:

-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

أو:

-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----

بعد ذلك، تكون الملفات متوافقة مع تنسيق PEM ويمكنك استخدامها في ملف تخزين مفاتيح أو Truststore بدون تحويلها إلى ملف PEM.

إذا كانت لديك سلسلة شهادات، وأردت استخدام تلك السلسلة في ملف تخزين مفاتيح أو مخزن شهادات، عندئذ يمكنك دمج جميع الشهادات في ملف PEM واحد مع سطر جديد بين كل شهادة. تشير رسالة الأشكال البيانية يجب أن تكون الشهادات بالترتيب وأن تكون الشهادة الأخيرة شهادة جذر أو شهادة متوسطة موقعة بواسطة شهادة جذر:

-----BEGIN CERTIFICATE-----
(Your Primary TLS certificate)
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
(Intermediate certificate)
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
(Root certificate or intermediate certificate signed by a root certificate)
-----END CERTIFICATE-----

الحصول على تفاصيل حول ملف تخزين مفاتيح حالي

ابحث في بيئتك عن أي ملفات تخزين مفاتيح حالية باستخدام قائمة ملفات تخزين المفاتيح وTruststores API:

curl -X GET \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-u email:password

بالنسبة إلى عملاء السحابة الإلكترونية، يتم توفير ملف تخزين مفاتيح تلقائي للمؤسسات التي تستخدم الفترة التجريبية المجانية في كل من بيئات الاختبار والإنتاج. من المفترض أن تظهر لك النتائج التالية لهذه المكالمة لكل من البيئات:

[ "freetrial" ]

يمكنك استخدام ملف تخزين المفاتيح التلقائي هذا لاختبار واجهات برمجة التطبيقات، وإرسال واجهات برمجة التطبيقات إلى مرحلة الإنتاج، ولكن تنشئ عادةً ملف تخزين المفاتيح الخاص بك، مع شهادتك ومفتاحك، قبل نشرها في مرحلة الإنتاج.

بالنسبة إلى عملاء Private Cloud، يكون الصفيف المعروض فارغًا حتى تنشئ أول ملف تخزين المفاتيح.

تحقق من محتويات ملف تخزين المفاتيح باستخدام الحصول على واجهة برمجة تطبيقات ملف تخزين المفاتيح أو Truststore بالنسبة إلى عميل السحابة الإلكترونية، يجب أن يظهر بروتوكول أمان طبقة النقل (TLS) لخادم واحد الشهادة، وهي الشهادة التلقائية التي يوفّرها Apigee Edge للحسابات التجريبية المجانية.

curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \
-u email:password

يجب أن يظهر الرد على النحو التالي:

{
 "certs" : [ "wildcard.apigee.net.crt" ],
 "keys" : [ "freetrial" ],
 "name" : "freetrial"
}

يمكنك أيضًا عرض هذه المعلومات في واجهة مستخدم إدارة Edge:

  1. سجِّل الدخول إلى واجهة مستخدم إدارة Edge على https://enterprise.apigee.com (على السحابة الإلكترونية) أو http://<ms-ip>:9000 (على أجهزة الشركة)، حيث <ms-ip> هو عنوان IP عنوان عقدة خادم الإدارة.
  2. في قائمة واجهة مستخدم إدارة Edge، حدد المشرف > شهادات TLS.

الحصول على تفاصيل شهادة بروتوكول أمان طبقة النقل (TLS)

يمكنك استخدام الحصول على تفاصيل الشهادة من واجهة برمجة تطبيقات ملف تخزين المفاتيح أو Truststore لعرض تفاصيل حول شهادات بروتوكول أمان طبقة النقل (TLS) في ملف تخزين المفاتيح، مثل تاريخ انتهاء الصلاحية وجهة الإصدار. أولاً، يجب الحصول على اسم الشهادة في التي تهتم بها. يجلب هذا المثال معلومات عن ملف تخزين المفاتيح المسمى "التجربة المجانية".

curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial \
-u email:password

نموذج الرد:

{
 "certs" : [ "wildcard.apigee.net.crt" ],
 "keys" : [ "freetrial" ],
 "name" : "freetrial"
}

بعد ذلك، استخدِم قيمة سمة certs للحصول على تفاصيل الشهادة:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/freetrial/certs/wildcard.apigee.net.crt \
-u email:password

نموذج الرد:

{
 "certInfo" : [ {
   "expiryDate" : "Wed, 23 Apr 2014 20:50:02 UTC",
   "isValid" : "Yes",
   "issuer" : "CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O=&quot;GoDaddy.com, Inc.&quot;, L=Scottsdale, ST=Arizona, C=US",
   "subject" : CN=*.example.apigee.net, OU=Domain Control Validated",
   "subjectAlternativeNames" : ["*.example.apigee.net","*.example.apigee.net" ],
   "validFrom" : "Tue, 15 Apr 2014 09:17:03 UTC",
   "version" : 3
 } ],
 "name" : "example.apigee.net.crt"
}

يمكنك أيضًا عرض هذه المعلومات في واجهة مستخدم إدارة Edge:

  1. سجِّل الدخول إلى واجهة مستخدم إدارة Edge على https://enterprise.apigee.com (سحابة إلكترونية). أو http://<ms-ip>:9000 (داخل الشركة) حيث <ms-ip> هو عنوان IP عنوان عقدة خادم الإدارة.
  2. في قائمة واجهة مستخدم إدارة Edge، حدد المشرف > TLS الشهادات:

في واجهة مستخدم Edge، يمكنك تحديد مدى تقدم Edge الذي يشير إلى أن الشهادة ستذهب لتنتهي صلاحيتها. تُبرز واجهة المستخدم تلقائيًا أي شهادات مجدولة لتنتهي صلاحيتها خلال الأيام العشرة التالية. أيام.

إنشاء ملف تخزين مفاتيح

ملف تخزين المفاتيح مخصص لبيئة في مؤسستك، على سبيل المثال الاختبار أو الإنتاج محددة. وبالتالي، إذا أردت اختبار ملف تخزين المفاتيح في بيئة اختبار قبل النشر إلى بيئة الإنتاج الخاصة بك، يجب عليك إنشاؤه في كلتا البيئتين.

يمكن إنشاء ملف تخزين مفاتيح من خلال عملية من خطوتين:

  1. أنشِئ ملف JAR يحتوي على الشهادة والمفتاح الخاص.
  2. أنشِئ ملف تخزين المفاتيح وحمِّل ملف JAR.

إنشاء ملف JAR الذي يتضمن الشهادة والمفتاح الخاص

أنشِئ ملف JAR باستخدام مفتاحك الخاص والشهادة وملف البيان. يجب أن يكون ملف JAR تحتوي على الملفات والأدلة التالية:

/META-INF/descriptor.properties
myCert.pem
myKey.pem

في الدليل الذي يحتوي على زوج المفاتيح والشهادة، أنشئ دليلاً باسم /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

لإنشاء ملف تخزين مفاتيح في بيئة ما، عليك فقط تحديد اسم ملف تخزين المفاتيح إنشاء واجهة برمجة تطبيقات ملف تخزين المفاتيح أو Truststore. لا يمكن أن يتضمّن الاسم سوى أحرف أبجدية رقمية:

curl -X POST -H "Content-Type: text/xml" \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-d '<KeyStore name="myKeystore"/>' -u email:password

نموذج الرد:

{
 "certs" : [ ],
 "keys" : [ ],
 "name" : "myKeystore"
}

بعد إنشاء ملف تخزين مفاتيح مُسمّى في بيئة، يمكنك تحميل ملفات JAR التي تحتوي على شهادة ومفتاح خاص باستخدام تحميل ملف JAR إلى واجهة برمجة تطبيقات ملف تخزين المفاتيح:

curl -X POST -H "Content-Type: multipart/form-data" \
-F file="@myKeystore.jar" -F password={key_pass} \ "https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/{myKeystore}/keys?alias={key_alias}" \
-u email:password

حيث يحدّد الخيار -F المسار إلى ملف JAR.

في هذا الاستدعاء، يمكنك تحديد معاملي طلب بحث:

  • alias - لتحديد وشهادة المفتاح في ملف تخزين المفاتيح. عندما تنشئ مضيفًا افتراضيًا، فإنك تشير إلى والمفتاح والشهادة من خلال اسمها المستعار.
  • password - كلمة مرور المفتاح الخاص. يمكنك حذف هذه المَعلمة إذا كان المفتاح الخاص لا يتضمّن كلمة مرور.

عليك التحقق من تحميل ملف تخزين المفاتيح بشكل صحيح:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystore \
-u email:password

نموذج الرد:

{  
 "certs" : [ "myCertificate" ],
 "keys" : [ "myKey" ],
 "name" : "myKeystore"
}

إنشاء متجر شهادات

تكون واجهات برمجة التطبيقات التي تستخدمها لإنشاء ملف تخزين موثوق به هي نفسها المستخدَمة لإنشاء ملف تخزين مفاتيح. تشير رسالة الأشكال البيانية الاختلاف الوحيد هو أنك تستخدم ملف الشهادة كملف PEM بدلاً من ملف JAR.

إذا كانت الشهادة جزءًا من سلسلة، يجب إما تحميل جميع الشهادات في السلسلة بشكل منفصل إلى Truststore، أو إنشاء ملف واحد يحتوي على جميع الشهادات، وتضمين سطر جديد بين كل شهادة في الملف. عادةً ما يتم توقيع الشهادة النهائية من قِبل جهة إصدار الشهادة. بالنسبة على سبيل المثال، في Truststore، يمكنك تحميل شهادة عميل وclient_cert_1 وشهادة عميل. شهادة الإصدار ca_cert.

تنجح مصادقة العميل أثناء مصادقة بروتوكول أمان طبقة النقل (TLS) ثنائية الاتجاه عندما يرسل الخادم client_cert_1 إلى العميل باسم جزءًا من عملية المصافحة لـ TLS.

يمكنك أيضًا الحصول على شهادة ثانية، وهي "client_cert_2"، موقَّعة من خلال الشهادة نفسها. ca_cert ومع ذلك، لا يمكنك تحميل client_cert_2 إلى Truststore. لا تزال Truststore يحتوي على client_cert_1 وca_cert.

عندما يمرر الخادم client_cert_2 كجزء من تأكيد اتصال بروتوكول أمان طبقة النقل (TLS)، تظهر نجح الطلب. ويرجع ذلك إلى أنّ شبكة Edge تسمح بنجاح عملية التحقق من خلال بروتوكول أمان طبقة النقل (TLS) عند عدم توفّر client_cert_2 في Truststore ولكن تم توقيعها من خلال شهادة متوفّرة في Truststore. في حال إزالة مرجع التصديق الشهادة، ca_cert، من Truststore ثم تعذّر التحقق من بروتوكول أمان طبقة النقل (TLS).

يمكنك إنشاء مخزن شهادات فارغ في البيئة باستخدام إنشاء ملف تخزين المفاتيح أو Truststore، وهو واجهة برمجة التطبيقات نفسها التي تستخدمها لإنشاء ملف تخزين مفاتيح:

curl -X POST -H "Content-Type: text/xml" -d \
'<KeyStore name="myTruststore"/>' \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores \
-u email:password

حمِّل الشهادة كملف PEM إلى Truststore باستخدام تحميل شهادة إلى واجهة برمجة تطبيقات Truststore:

curl -X POST -H "Content-Type: multipart/form-data" -F file="@trust.pem" \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myTruststore/certs?alias=myTruststore \
-u email:password

حيث يحدّد الخيار -F المسار إلى ملف PEM.

حذف ملف تخزين مفاتيح أو ملف تخزين موثوق به

يمكنك حذف ملف تخزين مفاتيح أو ملف تخزين موثوق به باستخدام حذف واجهة برمجة تطبيقات تخزين المفاتيح أو Truststore:

curl -X DELETE \
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/keystores/myKeystoreName \
-u email:password

نموذج الرد:

{
 "certs" : [ ],
 "keys" : [ ],
 "name" : "myKeystoreName"
}

في حال حذف ملف تخزين مفاتيح أو ملف تخزين موثوق به يستخدمه مضيف أو هدف افتراضي نقطة النهاية/الهدف/الخادم، وجميع طلبات البيانات من واجهة برمجة التطبيقات من خلال المضيف الافتراضي أو نقطة النهاية المستهدفة/خادم الهدف سوف تفشل..