操作场景
本文介绍对应长安链区块链网络 非国密 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:# 链IDchain_id: "chain_txtxt"# 组织IDorg_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 hostnametls_host_name: "common1-orgtxtxtxt.chainmaker-txtxtxtxtx"?
?