Openssl
為所有證書鏈生成 HPKP 指紋
從下面的命令只能為第一個深度證書生成 Base64 引腳。但需要為所有證書深度生成 pin。
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=
那麼,我們如何生成所有三個級別的引腳?
儘管我大多同意 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)。但是從這一點開始,您應該手動獲取此證書,在發行人網站上搜尋。如果您有權訪問 Web 伺服器,您將在文件系統中找到證書並使用 CA 證書在文件上執行您的腳本