Примітка: Це насправді не питання, тому що я вже знайшов відповідь, але, оскільки я не знайшов її тут легко, я опублікую її, щоб вона могла принести користь іншим.
Питання: Як прочитати зв'язаний файл PEM як файл, що використовується директивою apache / mod_ssl SSLCACertificateFile ?
Відповідь (оригінал) ( джерело ):
cat $file|awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Це може залишити порожній файл, якщо в кінці є порожній рядок, наприклад, з openssl pkcs7 -outform PEM -in my-chain-file -print_certs
. Щоб уникнути цього, перед друком перевірити довжину рядка:
cat $file|awk 'split_after==1{n++;split_after=0}
/-----END CERTIFICATE-----/ {split_after=1}
{if(length($0) > 0) print > "cert" n ".pem"}'
Відповідь 29.03.2016 :
Після @slugchewer відповіді , csplit
може бути зрозуміліше варіант з:
csplit -f cert- $file '/-----BEGIN CERTIFICATE-----/' '{*}'
openssl
один сертифікат для аналізу.