2010-01-18 07:43:44 +0000 2010-01-18 07:43:44 +0000
342
342

Как сохранить сертификат SSL удаленного сервера локально в виде файла

Мне нужно загрузить сертификат SSL удаленного сервера (не HTTPS, но SSL рукопожатие должно быть таким же, как и в Google Chrome / IE / wget and curl all give certificate check fail errors) и добавить сертификат в качестве доверенного в хранилище сертификатов моих ноутбуков Windows, так как я не могу заставить своих ИТ-специалистов выдать мне сертификат ЦС.

это для офисных коммуникаций, поэтому я не могу использовать реального клиента для получения сертификата.

Как это сделать, у меня есть Windows 7 и куча Linuxes, так что любой инструмент / скриптовый язык подойдет.

Ответы (8)

333
333
333
2010-08-17 07:20:51 +0000

Если у вас есть доступ к OpenSSL, попробуйте

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

заменить {HOSTNAME} и {PORT} любыми значениями.

264
264
264
2013-09-05 13:47:29 +0000

Быстрым способом получения и скачивания сертификата будет выполнение следующей команды, которая передает вывод с -showcerts на команду x509 ssl, которая просто снимает все лишнее. Например:

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

Для использования сертификата, с wget,

&00001

128
128
128
2010-01-18 07:56:49 +0000

Честно говоря, я никогда не пробовал этого раньше (никогда не было необходимости), однако, я только что попробовал в Firefox, и это, кажется, работает для экономии:

  1. Нажмите на иконку SSL-сертификата в верхней части / Padlock в нижней части.
  2. Нажмите View Certificate
  3. Нажмите на вкладку Details
  4. Выберите нужный вам сертификат из иерархии [не обведен на рисунке]
  5. Нажмите на Export

.

52
52
52
2016-12-26 18:45:38 +0000

Экспорт сертификата через браузер Chrome

  1. Подключитесь к веб-сайту с помощью SSL https://whatever )

~~2. Нажмите на символ замка и затем нажмите на кнопку Details ~~

  1. Начиная с версии 56 Chrome, выполните следующие действия: перейдите в меню “Три точки” -> “Дополнительные инструменты” -> “Инструменты для разработчиков” и щелкните вкладку “Безопасность”. Это даст вам Обзор безопасности с кнопкой Просмотр сертификата.

  2. Нажмите на кнопку просмотра сертификата.

  3. Для экспорта сертификата:

.

20
20
20
2012-10-18 22:10:10 +0000

Это ответ gbroiles’ answer , но я хотел отметить, что проект cURL имеет страницу с более подробной информацией об использовании openssl для сохранения SSL сертификата удаленного сервера:

  • openssl s\_client -connect {HOSTNAME}:{PORT} | tee logfile
  • Введите QUIT и нажмите клавишу Enter / Return.
  • Сертификат будет находиться между маркерами “BEGIN CERTIFICATE” и “END CERTIFICATE”.
  • Если вы хотите увидеть данные в сертификате, вы можете их использовать:
16
16
16
2018-01-25 15:59:26 +0000

automated

  • мне потребовалось имя сервера, чтобы получить правильный сертификат с виртуального хоста на нашем сервере.

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

Последняя часть заключается в добавлении его в ваши сертификаты, не уверен в Windows для связки ключей Mac, которую я использовал, должно быть похожим …

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

2
2
2
2017-05-23 01:20:39 +0000

Это даст результаты, содержащие только сертификаты

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "
```.
0
0
0
2019-05-03 13:19:15 +0000

Нашел гораздо более простой способ, если на Windows. Попробовал Microsoft Edge (prechromium) и нажал на блокировку в адресной строке -> Диалог просмотра сертификата появляется с кнопкой “Экспорт в файл”, которая сохраняет его в виде .crt файла.

Не для чего бы я использовал Edge, но это был кусок пирога.

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

21
8
9
6
14