通常证书链文件会包含多个证书,然而有些系统并不支持这种多个证书搁在一起的格式,那么就需要把单个证书链文件split成多个证书文件,每个文件包含一个证书。
bash有两个使用命令工具可以处理这种常见。
假设chains.pem是原输入文件包含多个证书,那么结果是生吃多个证书文件:
cert.{N}.pem,N=0..{n}
用csplit
$ cat chains.pem | awk 'BEGIN {c=-1;} /-----BEGIN CERTIFICATE-----/{c++} { print > "cert." c ".pem"}'
用awk
$ csplit -s -z -f "cert." -b "%d.pem" chains.pem '/-----BEGIN CERTIFICATE-----/' '{*}'
网友评论