证书申请 CSR 生成指南

最近更新时间:2023-11-20 17:25:56

我的收藏

操作场景

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

操作步骤

ECC 证书申请 CSR

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

工具说明

以下为工具中主要使用的命令:
生成密钥对:生成的 out.key 文件为用户的私钥,需安全保存。
openssl ecparam -name prime256v1 -genkey -out out.key
生成 CSR 文件:命令中使用的 openssl_user.cnf 文件已包含在下载工具中,无需变更内容。
openssl req -batch -config openssl_user.cnf -key out.key -new -sha256 -out out.csr
转换私钥格式:将已生成的 out.key 私钥转换为 pkcs#8 格式的 out_sk 文件,用于 fabric-sdk 识别。
openssl pkcs8 -topk8 -in out.key -nocrypt -out out_sk

SM2 证书申请 CSR

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

工具说明

以下为工具中主要使用的命令:
生成密钥对:生成的 out.key 文件为用户的私钥,需安全保存。
gmssl ecparam -name sm2p256v1 -genkey -out out.key
生成 CSR 文件:命令中使用的 gmssl_user.cnf 文件已包含在下载工具中,无需变更内容。
gmssl req -batch -config gmssl_user.cnf -key out.key -new -sm3 -out out.csr
转换私钥格式:将已生成的 out.key 私钥转换为 pkcs#8 格式的 out_sk 文件,用于 fabric-sdk 识别。
gmssl pkcs8 -topk8 -in out.key -nocrypt -out out_sk

Fabric 原生 SDK 示例

您可参考以下代码,在 Fabric 原生 SDK 中使用生成的私钥及已下载的证书:

Java SDK

Wallet wallet = Wallet.createFileSystemWallet("本地存储证书信息目录");
FileReader keyReader = new FileReader("pkcs#8 格式私钥证书文件");
FileReader certReader = new FileReader("TBaaS 上下载的证书");
wallet.put("证书标识", Identity.createIdentity("组织 MSP", certReader, keyReader));

Node.js SDK

var fs = require('fs-extra');
var fabric_client = new Fabric_Client();

var cert = fs.readFileSync('TBaaS 上下载的证书');
var priv = fs.readFileSync('pkcs#8 格式私钥证书文件');

fabric_client.createUser({
username: '证书标识',
mspid: '组织 MSP',
cryptoContent: {
privateKeyPEM: priv,
signedCertPEM: cert
}
});