创建私钥阿里云SSL证书服务要求私钥满足以下条件:

加密算法:RSA

密钥长度:不低于 2048位

根据实际情况,可选择以下方式创建私钥:

说明 若需在阿里云数字证书管理服务购买证书,推荐在购买、创建或申请时选择CSR生成方式为系统生成,此时无需自行创建私钥及CSR文件。

生成全新的私钥适用于大多数非 Java 环境(如 Nginx、Apache)或希望从零开始生成密钥的场景。

获取并安装OpenSSL工具。

从OpenSSL官网获取其安装包。

说明 请确保使用的 OpenSSL 为官方支持的最新稳定版本(如 1.1.1、3.x 等)。过时的版本可能包含已知的安全漏洞。您可以通过在终端执行 openssl version 命令来检查当前版本。

生成私钥文件。

以下命令会创建一个名为 myprivate.pem、采用 RSA 算法、指定密钥长度的 PEM 格式私钥文件。请根据安全需求,选择执行其中一条命令生成私钥即可。

# 生成 2048 位密钥

openssl genrsa -out myprivate.pem 2048

# 生成更安全的 4096 位密钥

openssl genrsa -out myprivate.pem 4096

# 生成带密码保护的私钥(推荐用于高安全场景)

openssl genrsa -aes256 -out myprivate.pem 4096从现有Java密钥库(JKS)提取私钥适用于已使用 keytool 在 Java 密钥库(.jks 文件)中存储了密钥对,并需要将其中的私钥导出为 PEM 格式(例如,用于配置 Nginx、Apache、CDN 等非 Java 环境)的场景。可通过以下任一方法完成导出。

使用阿里云证书格式转换工具阿里云数字证书管理服务提供了免费的在线工具,可一键将 JKS 密钥库转换为 PEM 格式的私钥和证书文件。详情可参考证书格式转换。

使用 OpenSSL 命令行工具将 JKS 格式转换为 PKCS12 格式。

keytool 无法直接将私钥导出为 PEM 格式,但可以先将其转换为更通用的 PKCS12 (.p12) 格式。执行以下命令,系统将提示您输入 JKS 源密钥库密码和要设置的 PKCS12 目标密钥库密码。

# -srckeystore mydomain.jks : 指定源 Java 密钥库(JKS)文件名。

# -destkeystore mydomain.p12 : 指定需生成的目标 PKCS12 文件名。

# -srcalias mydomain : 指定 JKS 密钥库中私钥条目的原始别名。请将 mydomain 替换为您的实际别名。

# -destalias mydomain : 指定在新 P12 文件中为该密钥条目设置的目标别名(通常保持与源别名一致)。

keytool -importkeystore -srckeystore mydomain.jks -destkeystore mydomain.p12 -deststoretype PKCS12 -srcalias mydomain -destalias mydomain从 PKCS12 文件中提取 PEM 格式的私钥。

若当前未安装openssl,可从OpenSSL官网获取其安装包并安装。

说明 请确保使用的 OpenSSL 为官方支持的最新稳定版本(如 1.1.1、3.x 等)。过时的版本可能包含已知的安全漏洞。您可以通过在终端执行 openssl version 命令来检查当前版本。

使用 openssl 从前一步的 .p12 文件中抽取出无加密的 PEM 格式私钥。执行以下命令,系统会要求您输入在上一步中设置的 PKCS12 文件密码。

# myprivate.pem 文件即为最终需要的私钥文件

# -nodes:表示不加密输出的私钥

# -nocerts:表示不输出证书,只输出私钥

# 对于 OpenSSL 3.0 及以上版本,在遇到旧版本兼容性问题时需添加 -legacy 参数

openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem

# 若在 OpenSSL 3.x 出现“unsupported algorithm”或解密失败,可尝试添加 -legacy(注意:这将启用已废弃的加密算法)

openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem -legacy以上两种方式最终导出的私钥文件均为PEM(Privacy-Enhanced Mail)编码的文本格式。其内容通常由以下两种格式之一表示:

PKCS#1格式PKCS#1 格式是 RSA 密码学标准的一部分,专门用于定义 RSA 公私钥的语法。其私钥文件头部标识为 -----BEGIN RSA PRIVATE KEY-----。

-----BEGIN RSA PRIVATE KEY-----

(Base64编码的密钥内容)

-----END RSA PRIVATE KEY-----PKCS#8格式PKCS#8 是一个更通用的私钥信息语法标准,可以包含不同算法(如 RSA, ECC 等)的私钥。其私钥文件头部标识为 -----BEGIN PRIVATE KEY-----。

-----BEGIN PRIVATE KEY-----

(Base64编码的密钥内容)

-----END PRIVATE KEY-----说明 无论通过何种方式生成,私钥文件都必须得到最严格的保管。私钥一旦泄露或丢失,任何使用对应公钥加密的数据都将面临被破解的风险,同时基于该密钥对的数字证书也将无法使用。