내 브라우저에서 회사의 로컬 인트라넷에 있는 컴퓨터를 탐색하고 (인증서를 신뢰할 수 있음으로 표시한 후) 인증서를 파일로 내보낼 수 있습니다. 보안을 포기하지 않고 다양한 명령줄 도구를 사용할 때 삶을 더 쉽게 만들 수 있도록 이 프로세스를 쉘 스크립트로 자동화하려고 합니다.
이 주제를 Google에 검색하는 것은 어려웠으며 대부분 wget 또는 컬을 사용할 때 다운로드한 인증서를 신뢰하는 방법에 대한 결과를 얻었지만 이 경우에는 그것이 필요하지 않습니다. wget 또는 컬을 통해 서버의 공개 자체 서명 인증서를 로컬 파일로 다운로드하려면 어떻게 해야 합니까?
답변1
wget이나 컬에 대해서는 잘 모르겠지만 공개 키에만 관심이 있다면 다음이 작동합니다.
openssl s_client -connect hostname.domain.tld:port 2>&1 </dev/null | sed -ne '/BEGIN CERT/,/END CERT/p'
일반적으로 인증서 다운로드에 대해 이야기할 때는 루트 인증서가 됩니다. 다음 명령을 사용하여 Verisign의 인증서를 찾은 다음 루트 인증서를 시스템에 wget하거나 컬링하여 Verisign 인증서로 인증할 수 있습니다. 이 경우에는 구체적으로 "VeriSign Class 3 Extended Validation SSL SGC CA" 루트입니다.
$ openssl s_client -connect verisign.com:443 2>&1 </dev/null | openssl x509 -noout -text | grep "CA Issuers"
CA Issuers - URI:http://EVIntl-aia.verisign.com/EVIntl2006.cer
위 명령은 연결된 인증서를 표시하는 거의 모든 서버에서 작동합니다.