سؤال

على الرغم من أنني كنت على دراية بـ HTTPs ومفهوم SSL ، فقد بدأت مؤخرًا بعض التطوير ووجدت أنني مرتبك قليلاً.

كان الشرط هو أنني أكتب تطبيق Java صغير يعمل على جهاز متصل بالماسح الضوئي. عندما يتم فحص المستند ، يتم التقاط هذا ومرسل الملف (عادةً PDF) عبر الإنترنت إلى خادم التطبيق الذي سيقوم بعد ذلك بمعالجته. لقد كتبت التطبيق باستخدام مكتبات Apache Commons و httpclient.

كان الشرط الثاني هو الاتصال عبر SSL ، والذي يتطلب شهادة. بعد التوجيهات على صفحة httpclient أنا أستخدم AuthsSlProtocolsocketFactory من صفحة المساهمات.

يمكن أن يأخذ المُنشئ كلمة مرور Keystore وكلمة مرور KeyStore وكلمة مرور TrustStore و TrustStore. كاختبار أولي ، تم تمكين DBA الخاص بنا على أحد خادمات الويب الخاصة بنا ، وقدم لي ملف .p12 الذي يسمح لي بالاتصال بنجاح.

أنا مرتبك بعض الشيء بين Keystores و TrustStores وما هي الخطوات التي أحتاج إلى اتخاذها باستخدام keytool. حاولت استيراد p12 إلى ملف keystore لكن الحصول على الخطأ:

keytool error: java.lang.Exception: Input not an X.509 certificate

لقد اتبعت اقتراحًا باستيراد P12 إلى Internet Explorer وتصديره باعتباره. سسير يمكنني بعد ذلك استيراده بنجاح إلى مفاتيح. عندما أقوم بتزويد هذا بمثابة وسيطة مفاتيح من AuthsSlProtocolsocketFactory ، أحصل على خطأ لا معنى له ، لكن إذا حاولت ذلك كصاحب تراسه ، فيبدو أنه يقرأها جيدًا ولكن في النهاية أحصل عليها

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

لست متأكدًا مما إذا كنت قد فاتني بعض الخطوات ، فأنا أسيء فهم SSL والمصادقة المتبادلة تمامًا أو أن هذا سوء التكوين على جانب الخادم.

هل يمكن لأي شخص تقديم اقتراحات أو يوجهني نحو الموارد التي قد تساعدني في معرفة ذلك من فضلك؟

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

المحلول

يحتفظ Keystore بمفاتيحك الخاصة والشهادات المرتبطة بها. يحتفظ TrustStore بالشهادات التي تثق بها وبالتالي يمكن استخدامها لبناء مسار الشهادة والتحقق منها.

فيما يلي بعض الروابط التي قد تكون مفيدة:

java.lang.exception: الإدخال ليس شهادة X.509

استيراد المفتاح الخاص والشهادة في متجر Java Key Store

تكوين keystores و TrustStores

نصائح أخرى

تأكد من أن ملف الشهادة الخاص بك لا يحتوي على أي شيء قبل وبعد ذلك.

----- بداية شهادة -----

----- شهادة النهاية -----

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