如何使用OpenSSL生成PKCS#12证书,求等效于keytool的操作命令
OpenSSL生成PKCS#12文件操作指引
你原来使用keytool生成PKCS#12文件的命令实际包含了3个核心操作:生成2048位RSA密钥对、生成自签名证书、将密钥和证书打包为PKCS#12格式并设置别名、存储密码。可以通过以下OpenSSL命令实现等效效果:
方案1:单条命令直接生成(无额外临时文件残留)
# Windows环境执行 openssl req -x509 -newkey rsa:2048 -nodes -keyout temp.key -out temp.crt -days 3650 -subj "/CN=DefaultCert" && openssl pkcs12 -export -in temp.crt -inkey temp.key -name "friendly_alias" -passout pass:mypassword -out c:\my_cert.p12 && del temp.key temp.crt # Linux/Mac环境执行 openssl req -x509 -newkey rsa:2048 -nodes -keyout temp.key -out temp.crt -days 3650 -subj "/CN=DefaultCert" && openssl pkcs12 -export -in temp.crt -inkey temp.key -name "friendly_alias" -passout pass:mypassword -out ~/my_cert.p12 && rm temp.key temp.crt
参数说明:
-newkey rsa:2048:和keytool的-keyalg RSA -keysize 2048等效,指定生成2048位RSA密钥-name "friendly_alias":和keytool的-alias friendly_alias等效,设置PKCS#12文件的证书别名-passout pass:mypassword:和keytool的-storepass mypassword等效,设置PKCS#12文件的访问密码-days 3650:设置自签名证书有效期为10年,可自行调整时长-subj "/CN=DefaultCert":跳过交互式输入证书信息的步骤,如需自定义证书信息可删除该参数按提示输入即可
方案2:分步生成(可单独保留私钥、证书文件)
- 生成2048位RSA私钥文件
openssl genrsa -out private.key 2048
- 生成自签名证书
openssl req -new -x509 -key private.key -out cert.crt -days 3650
执行后按提示输入国家、省份、城市、组织、通用名等证书信息即可
3. 打包为PKCS#12格式文件
# OpenSSL 1.x版本使用 openssl pkcs12 -export -in cert.crt -inkey private.key -name "friendly_alias" -passout pass:mypassword -out c:\my_cert.p12 # OpenSSL 3.x版本如需兼容Java生态读取,添加-legacy参数即可 openssl pkcs12 -export -legacy -in cert.crt -inkey private.key -name "friendly_alias" -passout pass:mypassword -out c:\my_cert.p12
内容的提问来源于stack exchange,提问作者ashby
相关产品推荐
相关产品推荐

