注意:这并不是一个真正的问题,因为我已经找到了答案,但是由于我在这里不太容易找到答案,因此我将其发布出来,以使其他人受益。
问题:如何将串联的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
分析一个证书的工具来分别检查证书时,要拆分该文件。