Как сохранить сертификат SSL удаленного сервера локально в виде файла
Мне нужно загрузить SSL-сертификат удаленного сервера (а не HTTPS, но квитирование SSL должно быть таким же, как Google Chrome /IE /wget, и скручивать все, чтобы проверить ошибки проверки сертификата) и добавить сертификат как доверенный в моем ноутбуков Windows, поскольку я не могу заставить своих ИТ-ребята дать мне сертификат CA.
это для офисных сообщений, поэтому я не могу реально использовать фактического клиента для получения сертификата.
Как это сделать, у меня есть Windows 7 и куча Linuxes, поэтому любой язык инструментов /сценариев в порядке.
7 ответов
Если у вас есть доступ к OpenSSL, попробуйте
openssl s_client -connect {HOSTNAME}: {PORT} -showcerts
заменив {HOSTNAME} и {PORT} любыми вашими значениями.
Быстрый метод получения выгруженного и загруженного сертификата состоял в том, чтобы запустить следующую команду, которая выводит вывод из -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
Честно говоря, я никогда не пробовал это раньше (никогда не нужно), однако, я только что пробовал в Firefox и, похоже, работает для сохранения:
- Нажмите на значок сертификата SSL вверху /Padlock внизу.
- Нажмите
Просмотреть сертификат
- Нажмите вкладку
Details
- Выберите, какой сертификат вы хотите от иерархии [не обведено в картинке]
- Нажмите
Export
Экспорт сертификата с помощью браузера Chrome
- Подключитесь к сайту с помощью SSL ( https: //независимо )
2. Нажмите на символ блокировки, а затем нажмите «Подробности»
-
Начиная с версии Chrome 56, вы делаете следующее: перейдите в меню «Три точки» -> Дополнительные инструменты -> Инструменты разработчика, затем щелкните вкладку «Безопасность». Это даст вам Обзор безопасности с помощью кнопки Открыть сертификат .
-
Нажмите кнопку Открыть сертификат .
Откроется модальное окно. Он имеет две панели. В верхней строке показана иерархия доверия сертификата сайта (последний из них), промежуточный сертификат (ы) и корневой сертификат (самый верхний).
Вторая, более крупная панель, показывает детали одного из сертификатов.
Может быть ноль или более промежуточных сертификатов.
Обратите внимание, что корневой сертификат имеет значок с золотой границей. Остальные имеют синюю границу.
Смотрите снимок экрана ниже.
-
Чтобы экспортировать сертификат:
- Сначала щелкните значок сертификата в иерархии доверия.
- Сертификат будет показан в основной части модального файла.
- Нажмите на большой значок сертификата в основной части модального. Перетащите значок на рабочий стол. Затем Chrome копирует сертификат на ваш рабочий стол.
Это ответ gbroiles , но я хотел бы указать, что проект cURL содержит страницу с несколькими подробностями при использовании openssl
для сохранения сертификата SSL удаленного сервера
-
openssl s_client -connect {HOSTNAME}: {PORT} | tee logfile
- Введите
QUIT
и нажмите клавишу Enter /Return. - Сертификат будет указан между отметками «BEGIN CERTIFICATE» и «END CERTIFICATE».
-
Если вы хотите видеть данные в сертификате, вы можете использовать:
openssl x509 -inform PEM -in certfile -text -out certdata pre>
, где
certfile
- это сертификат, извлеченный изlogfile
. Посмотритеcertdata
.
автоматизирован
-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
Последняя часть - это добавить его в свои сертификаты, а не обязательно на windows
для mac keychain, который я использовал, должен быть схожим ...
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer
Это даст результаты, содержащие только сертификаты
echo QUIT | \
openssl s_client -showcerts -connect имя хоста: порт | \
awk '/----- BEGIN CERTIFICATE ----- /{p = 1}; п; /----- КОНЕЦ СЕРТИФИКАТА ----- /{p = 0} '"