![`openssl`을 사용하여 PEM 파일의 모든 인증서 표시](https://linux55.com/image/203820/%60openssl%60%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20PEM%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EC%9D%B8%EC%A6%9D%EC%84%9C%20%ED%91%9C%EC%8B%9C.png)
다음 명령을 사용하여 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를 사용해 볼 수도 있습니다.