سؤال

أحاول تمكين اتصال SSL من عميل خدمة ويب (AXIS2) باستخدام الشهادة على بطاقة CAC للمستخدم. يعمل مثل سحر .... حتى يتم تمكين خادم الويب CAC. عند هذه النقطة يتم رفض اتصال SSL برسالة الخطأ التي لم يتم تضمين الشهادات الأخرى في السلسلة.

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

نهجي الحالي هو ببساطة تعيين خصائص النظام: system.setproperty ("javax.ssl.keystore"، "لا شيء")؛ system.setproperty ("javax.net.ssl.keystoreTube"، "pkcs11")؛

أنا أفهم من هذه السؤال / الإجابة على أن هذا النهج يرسل فقط شهادة "إنهاء الكيان". على ما يبدو أنني بحاجة إلى تنفيذ بلدي x509kymanager الخاص بي. هذه أرضية جديدة بالنسبة لي، هل يمكن لأي شخص أن يقترح مرجعا جيدا أو تقديم عينات من كيفية القيام بذلك؟

نقدر المساعدة.

هل كانت مفيدة؟

المحلول

يعتمد أفضل تنفيذ مدير رئيسي على مصدر الشهادات التي تتوقع أن تستخدمها.

إذا كانت الشهادة الموجودة على CAC للمستخدم دائما يتم إصدارها من خلال CA محددة، ببساطة تخزين شهادة المصدر وأي شهادات متوسطة تزيد عن تشغيل السلسلة في ملف PKCS # 7. في ال getCertificateChain() الطريقة، يمكن إلحاق هذه المجموعة عمياء بشهادة المستخدم وعادتها.

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

أضف كل شهادات الجذر إلى متجر رئيسي كإدخالات موثوق بها. قم بتعبير الشهادات الوسيطة في ملف PKCS- # 7.

ينفذ X509KeyManager (أو تمديد X509ExtendedKeyManager إذا كنت تعمل مع SSLEngine). على وجه التحديد، في getCertificateChain() الطريقة، سوف تستخدم CertPathBuilder لإنشاء سلسلة صالحة من شهادة المستخدم إلى جذر موثوق به. ال استهداف هي الشهادة التي تقوم بتحميلها من CAC للمستخدم مع alias معامل. ال جذور موثوقة هي الشهادات في متجر الثقة التي قمت بإنشائها؛ الشهادات الوسيطة يمكن أن تكون محمل من ملف PKCS # 7 و يضاف إلى معلمات باني. بمجرد أن يتم بناء السلسلة، الحصول على مسار الشهادة و تحويله إلى صفيف. هذه هي نتيجة getCertificateChain() طريقة.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top