`openssl`을 사용하여 PEM 파일의 모든 인증서 표시

`openssl`을 사용하여 PEM 파일의 모든 인증서 표시

다음 명령을 사용하여 PEM 파일에 인증서를 표시할 수 있습니다.

openssl x509 -in cert.pem -noout -text

하지만 첫 번째 인증서의 정보만 표시됩니다. PEM 파일에는 인증서 체인이 포함될 수도 있습니다. 포함된 모든 인증서를 표시하는 방법은 무엇입니까?

답변1

openssl명령(특히 해당 openssl x509하위 명령 등)은 데이터 흐름에 대해 정중합니다. 일단 데이터를 읽으면 필요한 것 이상을 읽지 않습니다.

이를 통해 여러 openssl명령을 다음과 같이 연결할 수 있습니다.

while openssl x509 -noout -text; do :; done < cert-bundle.pem

그러면 파일에 있는 모든 번들 인증서가 표시됩니다 cert-bundle.pem. 오류로 끝납니다. 더 이상 입력을 사용할 수 없지만 작동 방식을 보여주기 위한 것입니다.

답변2

PEM 형식은 여러 인증서를 잘 처리하지 못하는 것 같습니다. 기반으로이 답변:

openssl crl2pkcs7 -nocrl -certfile cert.pem | openssl pkcs7 -print_certs -text -noout

먼저 pkcs7로 변환한 다음 표시합니다.

답변3

또는 다음을 수행할 수 있습니다.

awk -F'\n' '
BEGIN { showcert = "openssl x509 -noout -text" }
/-----BEGIN CERTIFICATE-----/ {printf "%d: ", i}
{printf $0"\n" | showcert}
/-----END CERTIFICATE-----/ {close(showcert) i++}' cert.pem

답변4

openssl pkcs12 -in cert.p12 -cacerts -nodes -nokeys > rootcert.pem

또는 KeyStore Explorer를 사용해 볼 수도 있습니다.

관련 정보