有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

本文介绍对应长安链区块链网络 非国密 ECC 证书国密 SM2证书 申请证书请求文件 CSR 生成的步骤,请结合您的实际情况通过以下两种方式生成 CSR:

操作步骤

非国密 ECC 证书申请 CSR

1. 前往 OpenSSL 官网,下载 openssl 并配置安装。
2. 下载 cmecccsr 工具 并解压。
3. 执行以下命令,生成对应文件。
sh ecccsr.sh
该命令会生成以下四个文件:
user_ecc_sign.key:为用户证书对应私钥,需安全保存,支持在 SDK 中使用。
user_ecc_sign.csr:用于在 TBaaS 控制台 申请用户证书。
user_ecc_tls.key:为用户tls证书对应私钥,需安全保存,支持在 SDK 中使用。
user_ecc_tls.csr:用于在 TBaaS 控制台 申请用户tls证书。

工具说明

以下为工具中主要使用的命令:
1. 生成用户证书对应私钥和 CSR 文件
生成密钥对:生成的 temp 文件为用户证书对应私钥。
openssl ecparam -name prime256v1 -genkey -out temp
生成用户证书 CSR 文件:命令中使用的 openssl_user.cnf 文件已包含在下载工具中。
openssl req -batch -config openssl_user.cnf -key temp -new -sha256 -out user_ecc_sign.csr
转换私钥格式:将已生成的 temp 私钥转换为 pkcs#8 格式的 user_ecc_sign.key 文件,后续用于 chainmaker-sdk 的配置和识别。
openssl pkcs8 -topk8 -in temp -nocrypt -out user_ecc_sign.key
2. 生成用户 tls 证书对应私钥和 CSR 文件
生成密钥对:生成的 temp 文件为用户tls证书对应私钥。
openssl ecparam -name prime256v1 -genkey -out temp
生成用户 tls 证书 CSR 文件:命令中使用的 openssl_user.cnf 文件已包含在下载工具中。
openssl req -batch -config openssl_user.cnf -key temp -new -sha256 -out user_ecc_tls.csr
转换私钥格式:将已生成的 temp 私钥转换为 pkcs#8 格式的 ser_ecc_tls.key 文件,后续用于 chainmaker-sdk 的配置和识别。
openssl pkcs8 -topk8 -in temp -nocrypt -out user_ecc_tls.key

国密 SM2 证书申请 CSR

1. 前往 GmSSL 官网,下载 gmssl 并配置安装。
2. 下载 cmsm2csr 工具 并解压。
3. 执行以下命令,生成对应文件。
sh sm2csr.sh
该命令会生成以下四个文件:
user_sm2_sign.key:为用户证书对应私钥,需安全保存,支持在 SDK 中使用。
user_sm2_sign.csr:用于在 TBaaS 控制台 申请用户证书。
user_sm2_tls.key:为用户tls证书对应私钥,需安全保存,支持在 SDK 中使用。
user_sm2_tls.csr:用于在 TBaaS 控制台 申请用户tls证书。

工具说明

以下为工具中主要使用的命令:
1. 生成用户证书对应私钥和 CSR 文件
生成密钥对:生成的 temp 文件为用户证书对应私钥。
gmssl ecparam -name sm2p256v1 -genkey -out temp
生成用户证书CSR文件:命令中使用的 gmssl_user.cnf 文件已包含在下载工具中。
gmssl req -batch -config gmssl_user.cnf -key temp -new -sm3 -out user_sm2_sign.csr
转换私钥格式:将已生成的 temp 私钥转换为 pkcs#8 格式的 user_sm2_sign.key 文件,后续用于 chainmaker-sdk 的配置和识别。
gmssl pkcs8 -topk8 -in temp -nocrypt -out user_sm2_sign.key
2. 生成用户 tls 证书对应私钥和 CSR 文件
生成密钥对:生成的 temp 文件为用户tls证书对应私钥。
gmssl ecparam -name sm2p256v1 -genkey -out temp
生成用户 tls 证书 CSR 文件:命令中使用的 gmssl_user.cnf 文件已包含在下载工具中。
gmssl req -batch -config gmssl_user.cnf -key temp -new -sm3 -out user_sm2_tls.csr
转换私钥格式:将已生成的 temp 私钥转换为 pkcs#8 格式的 user_sm2_tls.key 文件,后续用于 chainmaker-sdk 的配置和识别。
gmssl pkcs8 -topk8 -in temp -nocrypt -out user_sm2_tls.key

长安链原生 SDK 证书配置示例

您可参考以下代码,在长安链原生 SDK chainmaker-sdk-go 中使用生成的私钥及已下载的证书配置 sdk_config.yml 文件,以非国密 ECC 证书为例。

Go SDK

chain_client:
# 链ID
chain_id: "chain_txtxt"
# 组织ID
org_id: "orgtxtxtxt.chainmaker-txtxtxtxtx"
# 客户端用户tls私钥路径
user_key_file_path: "./user_ecc_tls.key"
# 客户端用户tls证书路径
user_crt_file_path: "./user_tls.crt"
# 客户端用户交易签名私钥路径(若未设置,将使用user_key_file_path)
user_sign_key_file_path: "./user_ecc_sign.key"
# 客户端用户交易签名证书路径(若未设置,将使用user_crt_file_path)
user_sign_crt_file_path: "./user_sign.crt"

nodes:
- # 节点地址,格式为:IP:端口:连接数
node_addr: "orgtxtxtxt.chainmaker-txtxtxtxtxt.baas.tech:8080" #外网域名
# 节点连接数
conn_cnt: 1
# RPC连接是否启用双向TLS认证
enable_tls: true
# 信任证书池路径
trust_root_paths: # 包含组织根证书ca.crt的目录
- "./ca"
# 节点 TLS hostname
tls_host_name: "common1-orgtxtxtxt.chainmaker-txtxtxtxtx"