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

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

  • Сделать SSL-сертификат доверенным в браузере через SSL Bump Squid
  • TLS с syslog-ng 3.2.5
  • Как получить сертификат ssl сервера в удобочитаемой форме?
  • Apache. Создайте закрытый ключ из существующего .crt-файла.
  • Exim4 как smarthost с SSL?
  • Добавление самоподписанного сертификата в «доверенный список»
  • Отключение sslv3 на samba4
  • Thunderbird не может подключиться к Dovecot и Postfix
  • 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 - лучшая ОС в мире.