P10 请求包含以下核心字段:
CN=example.com, O=Company, C=CN在国产化或等保合规场景中,东方通常与 CFCA、华测(华测)、锐安信等支持 国密SSL证书 的 CA 配合使用,此时 P10 请求需支持 SM2/SM3/SM4 算法套件。
【主题锚点句】本文讨论在东方通系列服务中生成符合 CA/B Forum BR 要求及国密合规的 P10 请求的技术路径、工具选择与注意事项。
# 生成 RSA 私钥
openssl genrsa -out server.key 2048
# 生成 P10 请求(交互式输入 DN)
openssl req -new -key server.key -out request.p10 -sha256
# 非交互式(适合自动化)
openssl req -new -key server.key -out request.p10 \
-subj "/C=CN/O=Company/CN=server.example.com" \
-addext "subjectAltName=DNS:server.example.com,DNS:www.example.com"
输出 request.p10 即可提交至 CA。
# 生成 SM2 密钥对
gmssl ecparam -genkey -name sm2p256v1 -out server.key
# 生成 SM2 兼容的 P10 请求
gmssl req -new -key server.key -out request.p10 \
-subj "/C=CN/O=Company/CN=server.example.com" \
-sm3
注意:部分 CA 要求 P10 使用 DER 编码,可用:
openssl req -in request.p10 -out request.der -outform DER
# 生成密钥库与密钥对(JKS 格式)
keytool -genkeypair -alias server -keyalg RSA -keystore keystore.jks \
-storepass changeit -keypass changeit -validity 365 \
-dname "CN=server.example.com,O=Company,C=CN"
# 导出 P10 请求
keytool -certreq -alias server -keystore keystore.jks \
-file request.p10 -storepass changeit
对于 SM2,需使用支持国密的 BouncyCastle Provider 或商用国密 JCE 包,并指定 -keyalg SM2(依赖具体实现)。
Q:P10 提交后 CA 拒绝受理?
A:常见原因包括:DN 格式不规范、缺少必要扩展(如 SAN)、使用不支持的签名算法(如 md5)。应核对 CA 的 BR 实施文档。
Q:能否用 Let’s Encrypt 证书对接东方通对外服务?
A:技术上可行(使用 ACME 协议生成 P10 类似 CSR),但 Let’s Encrypt 不支持私钥导入模式,需通过自动话术部署证书;不推荐用于生产核心系统。
加密您的网站,赢得客户信任!