openssl 명령줄을 사용하여 cacertfile의 모든 항목을 추출하는 방법은 무엇입니까?

openssl 명령줄을 사용하여 cacertfile의 모든 항목을 추출하는 방법은 무엇입니까?

cacertfile(/etc/ssl/certs/ca-certificates.crt와 같이 여러 인증서가 포함된 파일)의 모든 인증서 주체를 추출할 수 있는 openssl 명령이 있습니까?

나는 그것을 시도했지만 openssl x509 -in /etc/ssl/certs/ca-certificates.crt -noout -subject첫 번째 인증서의 주제만 제공합니다.

답변1

CA 파일의 모든 주제를 인쇄하려면 다음을 수행하십시오.

openssl crl2pkcs7 -nocrl -certfile ca-certificates.crt | openssl pkcs7 -print_certs -text -noout | grep 'Subject:'

답변2

불행하게도 저는 OpenSSL이 이것을 할 수 있다고 믿지 않습니다. OpenSSL은 각 파일에 x509 작업에 대한 인증서가 있다고 가정합니다.

~에 따르면이 웹사이트별도의 파일로 분리해야 합니다. 그는 심지어 제안한다펄 스크립트이렇게 하면 분할됩니다. 그런 다음 이러한 파일을 반복하거나 Perl 스크립트를 수정하여 테마를 직접 추출할 수 있습니다.

답변3

파일을 가리키도록 변수를 설정하고 fileopenssl 명령을 수정하면 됩니다.

file="your file name"; first=""; for i in $(grep -n CERT "${file}" | cut -f 1 -d:)
do
    if [ -z "$first" ]
    then
        first=$i
        continue
    fi
    sed -n "$first,${i}p" "${file}" | openssl x509 -noout -subject
    first=""
done

관련 정보