如何从含证书与RSA私钥的PEM文件中提取证书至新文件
很高兴你已经顺利搞定了私钥的提取!要从同时包含证书和RSA私钥的PEM文件里单独提取证书部分,有两种常用且可靠的方法,根据你的环境选就行:
方法一:用OpenSSL官方工具(推荐)
OpenSSL专门提供了x509命令来处理证书,直接用它提取最稳妥,命令如下:
openssl x509 -in my_file.pem -out my_cert.crt -outform PEM
参数解释:
-in my_file.pem:指定你的源PEM文件路径-out my_cert.crt:设置输出的证书文件名(后缀用.crt或者.pem都可以,全凭个人习惯)-outform PEM:明确指定输出格式为PEM(其实默认就是PEM格式,加上这个参数只是让命令更清晰,避免环境差异)
如果你的源文件里包含多个证书,上面的命令只会提取第一个。要是需要导出所有证书,可以用下面的命令组合:
openssl crl2pkcs7 -nocrl -certfile my_file.pem | openssl pkcs7 -print_certs -out all_certs.pem
方法二:用文本处理工具(无OpenSSL环境时用)
如果你的环境里没有安装OpenSSL,用sed这类文本工具也能精准提取证书段:
sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' my_file.pem > my_cert.pem
这个命令的作用是:只打印源文件中从BEGIN CERTIFICATE标记开始,到END CERTIFICATE标记结束的所有内容,然后把这些内容重定向到新的证书文件里。
两种方法都能完美满足你的需求,优先推荐用OpenSSL的方法,因为它会自动验证证书的有效性,避免文本提取可能出现的格式问题~
内容的提问来源于stack exchange,提问作者Morais
相关产品推荐
相关产品推荐

