keystore و httpclient و https: هل يمكن لأحد أن يشرح لي هذا الرمز؟

StackOverflow https://stackoverflow.com/questions/2741457

سؤال

أحاول أن أفهم ما يحدث هذا الرمز.

KeyStore trustStore  = KeyStore.getInstance(KeyStore.getDefaultType());        
FileInputStream instream = new FileInputStream(new File("my.keystore")); 
try {
    trustStore.load(instream, "nopassword".toCharArray());
} finally {
    instream.close();
}

SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);

أسئلتي:

trustStore.load(instream, "nopassword".toCharArray()); هل تفعل ما بالضبط؟ من قراءة الوثائق load() سيتم تحميل بيانات keystore من دفق إدخال (وهو مجرد ملف فارغ أنشأناه للتو) ، باستخدام بعض "Nopassword" التعسفي. لماذا لا تحميله فقط null كمعلمة inputStream وسلسلة فارغة كحقل كلمة المرور؟

ثم ما الذي يحدث عندما يتم تمرير هذا المفاتيح الفارغة إلى مُنشئ SSLSocketFactory؟ ما هي نتيجة مثل هذه العملية؟

أو - هل هذا مجرد مثال حيث يجب عليك بالفعل وضع إشارة إلى ملف / كلمة مرور KeyStore الحالية؟

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

المحلول

أو - هل هذا مجرد مثال حيث يجب عليك بالفعل وضع إشارة إلى ملف / كلمة مرور KeyStore الحالية؟

يبدو حقا بهذه الطريقة. لا يوجد "my.keystore" تم توزيع الملف في التوزيعات الثنائية أو المصدر لـ httpclient 4.0.1. لكي تقوم بتشغيل ذلك ، ستنشئ مفتاحًا فعليًا. يمكنك استخدام أيضا KeyTool أو Portecle.

يوضح لك هذا المثال كيفية الاستفادة من متجر ثقة مختلف عن المتجر الذي يستخدمه JVM افتراضيًا ($ java_home/jre/lib/security/cacerts) لهذه الحالة DefaultHttpClient. يكون هذا مفيدًا عندما يستخدم موقع SSL شهادة موقعة من قبلها داخل المنزل سلطة الشهادة. لن يتم إنشاء اتصال SSL إلا عند التعرف على موقع شهادة الخادم. دخول ويكيبيديا TLS هي مقدمة لائقة إذا لم تكن على دراية بالمفهوم.

نصائح أخرى

يحاول هذا المثال إظهار كيفية تحميل متجر الثقة الخاص بك. للحصول على هذا المثال يعمل ، يجب أن يكون لديك ملف يسمى "my.keystore" في دليلك الحالي وكلمة المرور الخاصة بـ Keystore هي "Nopassword".

يرجى الملاحظة new File("my.keystore") لا ينشئ بالضرورة ملفًا جديدًا. إنه ببساطة ينشئ كائن ملف يشير إلى المسار.

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