it-swarm-ru.tech

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

Мне нужно скачать сертификат SSL удаленного сервера (не HTTPS, но рукопожатие SSL должно быть таким же, как Google Chrome/IE/wget и curl все дают ошибки проверки сертификата) и добавить сертификат как доверял хранилищу сертификатов Windows на моем ноутбуке, так как я не могу заставить своих ИТ-специалистов дать мне сертификат CA.

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

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

296
Kimvais

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

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

заменив {HOSTNAME} и {PORT} на ваши значения.

296
gbroiles

Быстрый способ получить и вытащить сертификат - запустить следующую команду, которая перенаправляет вывод команды -showcerts на команду x509 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
219
elec3647

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

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

alt text

121
William Hilsum

Экспорт сертификата с помощью браузера Chrome

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

2. Нажмите на символ замка и затем нажмите на Детали

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

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

    Модальное окно откроется. У него есть две панели. Верхний показывает иерархию доверия сертификата сайта (последний в списке), промежуточный сертификат (ы) и корневой сертификат (самый верхний).

    Вторая, более крупная панель, показывает детали одного из сертификатов.

    Может быть ноль или более промежуточных сертификатов.

    Обратите внимание, что корневой сертификат имеет значок с золотой каймой. У остальных синяя рамка.

    Смотрите скриншот ниже.

  3. Чтобы экспортировать сертификат:

    1. Сначала нажмите на значок сертификата в иерархии доверия.
    2. Сертификат будет показан в основной части мода.
    3. Нажмите на большую иконку сертификата в основной части мода. Перетащите значок на рабочий стол. Chrome скопирует сертификат на ваш рабочий стол.

 enter image description here

47
Larry K

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

  • openssl s_client -connect {HOSTNAME}: {PORT} | Тройник
  • Введите QUIT и нажмите клавишу Enter/Return.
  • Сертификат будет указан между маркерами «BEGIN CERTIFICATE» и «END CERTIFICATE».
  • Если вы хотите увидеть данные в сертификате, вы можете использовать:

    openssl x509 -информ PEM -в certfile -text -out certdata

    где certfile - сертификат, извлеченный из logfile. Посмотрите в certdata.

19
Daniel Trebbien

автоматизировано

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

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 брелок, который я использовал, должен быть похожим ...

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

15
Artistan

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

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