
아래 명령을 사용하면 첫 번째 깊이 인증서에 대해서만 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 인증서가 있는 파일에서 스크립트를 실행합니다.