Сохранить удаленный сертификат SSL с помощью командной строки Linux

Можете ли вы придумать какой-либо метод командной строки linux для сохранения сертификата, представленного сервером HTTPS? Что-то вроде линий curl /wget /openssl делает SSL-соединение и сохраняет сертификат, а не контент ответа HTTP.

. Gui, эквивалентный тому, что я ищу, - это перейти на сайт HTTPS, дважды щелкнуть значок браузера «безопасный сайт» и экспортировать сертификат. Кроме того, цель здесь - сделать это неинтерактивно.

Спасибо, Джим

22 голоса | спросил Jim 6 AMpTue, 06 Apr 2010 00:00:13 +040000Tuesday 2010, 00:00:13

2 ответа


30

Что-то вроде:

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 для получения сертификата SSL-совместимого сервера IMAP или POP3 (за исключением, очевидно, я не использую порт 443)

(Обратите внимание, что параметр «избыточный» -servername необходим, чтобы сделать openssl выполнить запрос с поддержкой SNI.)

ответил Cry Havok 6 AMpTue, 06 Apr 2010 00:08:26 +040008Tuesday 2010, 00:08:26
6

От 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'
ответил Matt Simmons 6 AMpTue, 06 Apr 2010 00:06:00 +040006Tuesday 2010, 00:06:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132