모든 인증서 체인에 대해 HPKP 지문 생성

모든 인증서 체인에 대해 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

3개가 아닌 1개의 키만 제공합니다.

cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=

그렇다면 세 가지 수준의 핀을 모두 생성하려면 어떻게 해야 할까요?

답변1

서버에 이미 인증서 파일이 있어야 한다는 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

답변2

인증서(발급자의 CN)에서 발급자를 추출할 수 있습니다. 하지만 이 시점부터는 발급자 웹사이트에서 검색하여 이 인증서를 직접 받아야 합니다. 웹 서버에 액세스할 수 있는 경우 파일 시스템에서 인증서를 찾고 CA 인증서가 있는 파일에 대해 스크립트를 실행합니다.

관련 정보