هل يمكنك التفكير في أي طريقة سطر أوامر linux لحفظ الشهادة المقدمة بواسطة خادم HTTPS؟ شيء ما على غرار وجود curl / wget / openssl يقوم بإجراء اتصال SSL وحفظ الشهادة بدلاً من محتوى استجابة HTTP.

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

شكرا جيم

answer

شيء مثل:

openssl s_client -servername remote.server.net -connect remote.server.net:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >/path/to/certificate.pem

هذا ما أستخدمه مع fetchmail لاسترداد شهادة خادم IMAP أو POP3 قادر على بروتوكول SSL (باستثناء من الواضح أنني لا أستخدم المنفذ 443)

(لاحظ أن -servernameالمعلمة "الزائدة عن الحاجة" ضرورية لتقديم opensslطلب بدعم SNI.)

من http://www.madboa.com/geek/openssl/#cert-retrieve

#!/bin/sh
#
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}

echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'