Uwaga: To nie jest tak naprawdę pytanie, ponieważ już znalazłem odpowiedź, ale ponieważ nie znalazłem jej tutaj łatwo, opublikuję ją, aby mogła przynieść korzyści innym.
Pytanie: Jak odczytać skonkatowany plik PEM jako plik używany przez dyrektywę apache / mod_ssl SSLCACertificateFile ?
Odpowiedź (oryginał) ( źródło ):
cat $file|awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Może to pozostawić pusty plik, jeśli na końcu jest pusty wiersz, na przykład with openssl pkcs7 -outform PEM -in my-chain-file -print_certs
. Aby temu zapobiec, sprawdź długość linii przed drukowaniem:
cat $file|awk 'split_after==1{n++;split_after=0}
/-----END CERTIFICATE-----/ {split_after=1}
{if(length($0) > 0) print > "cert" n ".pem"}'
Odpowiedź 29.03.2016 :
W następstwie @slugchewer odpowiedź , csplit
może być wyraźniejszy opcja z:
csplit -f cert- $file '/-----BEGIN CERTIFICATE-----/' '{*}'
openssl
ten, którego analizowanie wymaga jednego certyfikatu.