You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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:分步生成(可单独保留私钥、证书文件)

  1. 生成2048位RSA私钥文件
openssl genrsa -out private.key 2048
  1. 生成自签名证书
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:21:03