سؤال كيفية حفظ شهادة SSL للخادم البعيد محليًا كملف


أحتاج إلى تنزيل شهادة طبقة المقابس الآمنة لخادم بعيد (وليس HTTPS ، ولكن يجب أن تكون مصافحة طبقة المقابس الآمنة مماثلة لـ Google Chrome / IE / wget و curl جميعًا لإعطاء أخطاء التحقق من الشهادات) وإضافة الشهادة الموثوق بها في أجهزة الكمبيوتر المحمولة التي تعمل بنظام Windows ' متجر الشهادات نظرًا لعدم تمكني من الحصول على شهادات تقنية المعلومات الخاصة بي لإعطائي شهادة CA.

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

كيف يمكنني القيام بذلك ، لدي Windows 7 وكومة من Linuxes في متناول اليد لذا فإن أي لغة / لغة برمجة جيدة.


273
2018-01-18 07:43


الأصل


للحصول على شهادة خادم البريد، نرى security.stackexchange.com/questions/70528/... - That Brazilian Guy


الأجوبة:


إذا كان لديك حق الوصول إلى OpenSSL ، فحاول ذلك

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

استبدال {HOSTNAME} و {PORT} بكل قيمك.


263
2017-08-17 07:20



أنا أفضل هذا الخيار لأنني لست بحاجة إلى فتح واجهة المستخدم الرسومية ، ويمكنني القيام بذلك عبر SSH من خوادمنا. - bramp
بالإضافة إلى أنه يعمل لبروتوكولات أخرى غير HTTP. - matt
الحل elec3647 أتمتة بالكامل استخراج PEM في خط أنابيب قذيفة. - phs
443 هو المنفذ الافتراضي لـ HTTPS. - Flimm
أنا في حاجة -servername خيار الحصول على شهادة المضيف الظاهري. gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


طريقة سريعة للحصول على الشهادة التي تم سحبها وتنزيلها ستكون لتشغيل الأمر التالي الذي يوجه الإخراج من -showcerts إلى الأمر s509 ssl الذي يزيل فقط كل شيء خارج الدخيلة. فمثلا:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

لاستخدام الشهادة ، مع wget ،

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

191
2017-09-05 13:47



جربت هذا (على موقع آخر) - لكن كان من المتوقع أن تكون السلسلة الكاملة من السيرت: يبدو أن هذا فقط أعاد أول سلسلة في السلسلة - هل هذا متوقع؟ - monojohnny
هذا لا يعمل بالنسبة لي: غير قادر على تحميل الشهادة 27262: error: 0906D06C: إجراءات PEM: PEM_read_bio: لا سطر البدء: / SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/pem/pem_lib.c: 648: توقع: TRUSTED شهادة - Janusz
أتفق مع monojohnny ، هذا لا يعطيك السلسلة الكاملة. - Michael Munsey
في وقت متأخر ولكنmonojohnny: openssl s_client -showcerts يعرض جميع السلاسل في السلسلة المستلمة (إذا نجح الاتصال) ، ولكن من خلال الأنابيب openssl x509 يأخذ فقط أول واحد ويتجاهل الباقي. للحصول على كل منهم بدلا من استخدام ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p' أو ...| awk '/^-----BEGIN CERT/,/^-----END CERT/' يمكنك أيضا استخدام أكثر تعقيدا قليلا awk لوضع كل شهادة في ملف منفصل مما يسهل استخدامها مع openssl وبعض الأدوات الأخرى. - dave_thompson_085
لاستخدام الشهادة ، مع wget ، wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem - MUY Belgium


لأكون صادقاً ، لم أحاول هذا من قبل (ولكن لم أكن بحاجة إليه) ، لكني حاولت للتو في Firefox ويبدو أنها تعمل من أجل التوفير:

  1. انقر على رمز شهادة SSL في الجزء العلوي / قفل في الأسفل.
  2. انقر View Certificate
  3. اضغط على Details التبويب
  4. اختار الشهادة التي تريدها من التسلسل الهرمي [غير محاطة بدائرة في الصورة]
  5. انقر Export

alt text


114
2018-01-18 07:56



من الجيد أن تعرف - ولكن لفضولي ، هل يمكنك أن تشرح أكثر مما تحاول إنجازه؟ لم أكن بحاجة أبداً لتصدير شهادة عميل SSL وأنا أشعر بالفضول الشديد لماذا تحتاج بالفعل إلى القيام بذلك ... - William Hilsum
هذه شهادة خادم ، وليست شهادة عميل. السبب الرئيسي لتصدير مفتاح خاص وشهادة العميل هو الحفاظ على نسخة احتياطية ، أو إذا كنت تريد المصادقة باستخدام متصفح آخر أو جهاز كمبيوتر. - gbroiles
@ gbroiles - قراءة السؤال ، استخدم المصطلحات خاطئ ، ولكن هذا حل مشكلته. - William Hilsum
صحيح ، وأجبت على سؤالك - لماذا يريد شخص ما حفظ شهادة العميل؟ كان "شهادة العميل SSL" عبارة الخاص بك ، وليس له. - gbroiles
لا يبدو أن هناك طريقة لإجراء ذلك في Chrome ، أليس كذلك ؟! - fatuhoku


تصدير شهادة باستخدام متصفح Chrome

  1. الاتصال بموقع الويب باستخدام SSL (HTTPS: // أيا كان)

2. انقر فوق رمز القفل ثم انقر فوق "تفاصيل"

  1. منذ إصدار 56 من Chrome ، يمكنك إجراء ما يلي: انتقل إلى قائمة النقاط الثلاث -> أدوات أكثر -> أدوات المطور ، ثم انقر فوق علامة التبويب أمان. هذا سوف يعطيك نظرة عامة على الأمن مع عرض الشهادة زر.

  2. اضغط على عرض الشهادة زر.

    سيتم فتح نافذة مشروطة. لديها اثنين من الأجزاء. يعرض الجزء العلوي التسلسل الهرمي للثقة في شهادة الموقع (آخر واحد مدرج) ، والشهادة (الشهادات) الوسيطة ، وشهادة الجذر (أعلى واحدة).

    يعرض الجزء الثاني ، أكبر تفاصيل أحد الشهادات.

    قد يكون هناك صفر أو أكثر من الشهادات المتوسطة.

    لاحظ أن شهادة الجذر تحتوي على رمز محدد بالذهب. الآخرين لديهم حدود زرقاء.

    انظر اللقطة في الاسفل.

  3. لتصدير شهادة:

    1. انقر أولاً على رمز الشهادة في التسلسل الهرمي للثقة.
    2. سيتم عرض الشهادة في الجزء الرئيسي من الوسائط.
    3. انقر فوق رمز الشهادة الكبيرة في الجزء الرئيسي من الوسائط. سحب الرمز على سطح المكتب الخاص بك. سينسخ Chrome الشهادة بعد ذلك إلى سطح المكتب.

enter image description here


41
2017-12-26 18:45



اضطررت إلى سحب الرمز إلى محرر نصوص ، لم يعمل سطح المكتب بالنسبة لي. - Cory Klein
بالنسبة لـ Chrome على نظام التشغيل Windows ، بعد النقر فوق "عرض الشهادة" ، يختلف الوسائط عن نظام Mac. انقر فوق علامة التبويب تفاصيل ، ثم نسخ إلى ملف ... ثم اختر التنسيق واسم الملف ، وهو أمر بسيط. - PolyTekPatrick
عندما أستخدم Chrome v63 على نظام التشغيل Mac OS ، يكون الملف النصي الذي أحصل عليه من سحب الشهادة قابلاً للقراءة ، ولكن ليس بأي تنسيق منظم يمكنني معرفة كيفية تحويله إلى نموذج قابل للقراءة آليًا مثل X.509 .crt. - Jim DeLaHunt
لا فرق إذا فتح من شريط العنوان أو من علامة التبويب هذه ديف ، وما زال لا يمكن تنزيل crt ... - user25


هذا هو الإجابة gbroiles، لكني أردت أن أشير إلى أن مشروع cURL يحتوي على صفحة تحتوي على المزيد من التفاصيل على استخدام openssl لحفظ شهادة SSL للخادم البعيد:

  • openssl s_client -connect {HOSTNAME}: {PORT} | قم بتسجيل الدخول
  • نوع QUIT واضغط على مفتاح Enter / Return.
  • سيتم إدراج الشهادة بين علامتي "BEGIN CERTIFICATE" و "END CERTIFICATE".
  • إذا كنت ترغب في الاطلاع على البيانات في الشهادة ، فيمكنك استخدام:

    openssl x509 -inform PEM -in certfile -text -out certdata

    أين certfile هي الشهادة المستخرجة من logfile. ابحث في certdata.


18
2017-10-18 22:10



هذا العمل بالنسبة لي. لتكون أكثر وضوحا قليلا ، قمت بتحرير ملف السجل وقلص كل شيء كان خارج شهادة BEGIN و END CERTIFICATE وحفظ النتيجة على أنها certfile.pem (لست متأكدا إذا كانت الإضافة ضرورية). - Michael Welch


الآلي

كان مطلوب اسم الخادم بالنسبة لي للحصول على الشهادة الصحيحة من المضيف الظاهري على الخادم الخاص بنا.

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

يمكنك أيضًا التحويل إلى شهادة لسطح المكتب

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

الجزء الأخير هو إضافته إلى سيرتك ، وليس متأكداً على النوافذ
ل mac keychain اعتدت ، يجب أن تكون مماثلة ...

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer


9
2018-01-25 15:59



gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


هذا سيعطي النتائج التي تحتوي على الشهادات فقط

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "

1
2018-05-23 01:20