Создание отпечатков 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 

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

 cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs= 

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

  • Как отключить SSLv3 на SSH-сервере OpenSSH, чтобы избежать POODLE?
  • Давайте зашифровать - Apache - сшивание OCSP
  • Как отключить SSLv2 и SSLv3 в ssl.conf от Apache на CENTOS 6.5?
  • Добавить предупреждение о сообщениях, полученных Postfix без TLS
  • Порт 443 переключается на фильтрацию после теста openssl
  • vim.googlecode.com Изменение сертификата SSL
  • Thunderbird не может подключиться к Dovecot и Postfix
  • OpenBSD relayd SSL обратный прокси для 3 веб-серверов
  • 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 - лучшая ОС в мире.