%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EC%9D%B8%EC%A6%9D%EC%84%9C%20%EB%B3%B4%EA%B8%B0.png)
종종 인증서 파일(PEM) 형식에는 다음과 같은 여러 인증서가 포함됩니다.
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
다음 명령을 사용하여:
openssl x509 -in cert.pem -noout -text
첫 번째 항목을 볼 수 있습니다.
두 번째 항목이나 모든 항목을 표시하는 기본 제공 방법이 있습니까?
모든 항목을 보는 간단한 방법이 있습니까?
제가 정말로 관심 있는 것은 C, ST, O, OU, CN, 주제, 발행자 및 주제의 유효 날짜입니다.
답변1
게시물 번들의 모든 SSL 인증서를 보는 방법은 무엇입니까? 몇 가지 가능성을 제안합니다.
openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -text -noout
openssl crl2pkcs7 -nocrl -certfile CHAINED.pem | openssl pkcs7 -print_certs -noout (gives shorter output)
keytool -printcert -v -file <certs.crt>
이 게시물에는 Perl, bash, awk 및 기타 유틸리티를 사용할 때의 더 많은 변형이 포함되어 있습니다.
답변2
저는 OpenSSL이 아닌 도구를 제안하고 싶습니다. 또 다른 인기 있는 TLS 스택인 GnuTLS에는 certtool
동일한 형식으로 출력을 생성하는 유사한 프로그램이 있습니다.
certtool -i < multiplecerts.pem
(덜 일반적인 인증서 확장의 디코딩과 같은 일부 작은 세부 사항에서는 다릅니다.)
답변3
나는 이것이 오래되었다는 것을 알고 있지만 여기에서 꽤 많은 주석 처리된 행이 포함된 pem 형식의 인증서 체인에서 제목, 유효 날짜 및 발급자를 가져오는 방법을 찾았습니다.
따라서 bash 4.2.46을 실행하는 RHEL7에서 GNU.org의 sed 문서를 광범위하게 읽은 후 결정한 솔루션은 다음과 같습니다.sed 여러 줄 기술
for CULPRIT in $(sed -n '/^-----BEGIN.*CERTIFICATE-----/{n;p}' CHAIN-FILE-NAME); do
VICTIM="$(printf "${CULPRIT}" | sed -e 's,\/,\\\/,g')"
sed -e '/./{H;$!d;}' -e 'x;/'"${VICTIM}"'/!d' CHAIN-FILE-NAME | openssl x509 -subject -dates -issuer -noout
done