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

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

  • Хранилище корневых файлов FreeBSD 10
  • Выполнение сценария Nmap для обнаружения сердечной недостаточности терпит неудачу
  • Можно удалить папку ssl без конфликта
  • NGINX: 400 Простой HTTP-запрос был отправлен на порт HTTPS
  • Как проверить сертификат X.509?
  • `openssl`: Альтернативное имя субъекта
  • Несколько сертификатов сервера RSA не разрешены
  • Поддерживает ли Apache 2.2.3 TLSv1.1 и TLSv1.2?
  • 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 - лучшая ОС в мире.