本文共 719 字,大约阅读时间需要 2 分钟。
近期在配置https工单时,遇到两起客户提供的crt非标准,需要根据p7b及crt文件手动从p7b文件以base64编码逐个导出证书后拼接为新的crt,过程较繁琐。为提升效率,总结了p7b转换crt的方法,步骤如下:
以1.a.com.p7b证书为例,转换为1.a.com.crt
fold -w 64 1.a.com.p7b > temp.p7b
openssl pkcs7 -print_certs -in temp.p7b |grep -Ev '^\s*$|subject|issuer' > 1.a.com.crt
对应脚本
#!/bin/bashp7b_file="$1"p7b_filename=$(echo ${p7b_file} |sed -r 's#(.*).p7b#\1#g')usage (){ echo "Usage:sh $0 p7b_file" exit 0}[ $# -ne 1 ] && usagefold -w 64 ${p7b_file} > temp.p7bopenssl pkcs7 -print_certs -in temp.p7b |grep -Ev '^\s*$|subject|issuer' > ${p7b_filename}.crt
使用方法
sh p7b_to_crt.sh p7b文件
实际用例
sh p7b_to_crt.sh owner1a_520wdy_com.p7b
生成的crt在当前目录下,与p7b文件同名。
转载于:https://blog.51cto.com/xoyabc/2058746