使用OpenSSL将P7B转换为PFX
时间:2020-03-21 11:43:09 来源:igfitidea点击:
在IIS Web服务器上更新SSL证书时,每次必须做的事情。
格式说明
P7B(PKCS#7)
P7B文件是一个文本文件,其中包含证书和链式证书,但不包含私钥。
PFX(PKCS#12)
PFX文件是一种二进制格式的文件,用于将服务器证书,任何中间证书和私钥存储在一个可加密文件中。
将P7B转换为PFX
请注意,为了进行转换,我们必须同时拥有证书cert.p7b文件和私钥cert.key文件。
$openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
从pkcs7的手册页中:
- -print_certs:打印出文件中包含的所有证书。
- -in:指定要读取的输入文件名。
- -out:指定要写入的输出文件名。
$openssl pkcs12 -export -in cert.cer -inkey cert.key -out cert.pfx
从pkcs12的手册页中:
- -export:指定将创建PKCS#12文件。
- -in:指定要解析的PKCS#12文件的文件名。
- -inkey:指定要从中读取私钥的文件。
- -out:指定要写入PKCS#12文件的文件名。
使用OpenSSL创建自签名PFX
2048位RSA自签名证书,有效期5年:
$openssl req -new -x509 -days 1825 -sha256 -nodes -out cert.crt \ -keyout cert.key
从openssl手册页:
- 要求:创建和处理证书申请。
- -new:生成一个新的证书请求。
- -x509:输出自签名证书而不是证书请求。
- -days:使用-x509选项时,它指定认证证书的天数。
- -sha256:指定用于签署请求的消息摘要。
- -nodes:私钥不会被加密。
- -out:指定要写入的输出文件名。
- -keyout:将新创建的私钥写入的文件名。
$openssl pkcs12 -export -in cert.crt -inkey cert.key -out cert.pfx
生成新的私钥和证书签名请求(CSR)
$openssl req -new -newkey rsa:2048 -sha256 -nodes -out cert.csr \ -keyout cert.key
-newkey选项创建一个新的证书请求和一个新的私钥。
从PFX创建RSA私钥
$openssl pkcs12 -in cert.pfx -nocerts -nodes | openssl rsa -out rsaprivkey.pem