Создание отпечатков HPKP для всей цепочки сертификатов

Команда ниже, способная генерировать вывод Base64 только для сертификата первой глубины. Но нужно создать вывод для всей глубины сертификата.

openssl s_client -servername example.com -connect example.com:443 -showcerts | openssl x509 -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64 

Дает только один ключ вместо трех,

  • неверная SSL_версия, указанная в /usr/share/perl5/IO/Socket/SSL.pm строке 332
  • Stunnel: как игнорировать дату истечения срока действия сертификата
  • почему сообщение postfix smtp отключено?
  • Простой HTTP-прокси для проверки нескольких клиентов
  • Chrome не открывает веб-сайты Https
  • Как найти окончательный сертификат CA в действительном сертификате
  •  cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs= 

    Итак, как мы можем генерировать все три уровня контактов?

  • Включение наборов экспортных шифров в Apache / OpenSSL
  • apache2 Неверная команда 'SSLEngine'
  • Как настроить SSL в apache?
  • Как шифровать сообщения / текст с помощью RSA и OpenSSL?
  • почему сообщение postfix smtp отключено?
  • stunnel - как настроить stunnel для обработки ssl и подключить к нему http?
  • 2 Solutions collect form web for “Создание отпечатков HPKP для всей цепочки сертификатов”

    Хотя я в основном соглашаюсь с Romeo, что у вас должны быть файлы сертификатов на сервере уже, если вам нужно обработать несколько сертификатов из одного s_client вы можете сделать что-то вроде:

      openssl s_client ..... -showcerts \ | awk '/-----BEGIN/{f="cert."(n++)} f{print>f} /-----END/{f=""}' # or input from bundle or chain file for c in cert.*; do openssl x509 <$c -noout -pubkey ..... done rm cert.* # use better temp name/location if you want 

    Вы можете вывести эмитента из сертификата (CN эмитента). Но с этого момента вы должны получить этот сертификат вручную, выполнив поиск на веб-сайте эмитента. Если у вас есть доступ к веб-серверу, вы найдете в файловой системе сертификаты и запустите свой скрипт над файлом (-ами) с сертификатами CA

    Linux и Unix - лучшая ОС в мире.