一、操作场景
·非国密 ECC 证书申请 CSR
·国密 SM2 证书申请 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"