openssl - 生成与 Hyperledger Fabric 兼容的 EC 密钥和 CSR 的建议 openssl 命令是什么?
问题描述
我们使用 openssl 生成 CSR(证书签名请求),如下所示。
- Step1:生成ECPARAM.pem文件
openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve:P-384 -out ECPARAM.pem
- Step2:生成privateKey和CSR:
openssl req -newkey ec:ECPARAM.pem -keyout PRIVATEKEY.key -out MYCSR.csr
从上面列出的 CSR 中的相应 CA 颁发并签署新的对等证书。
启动对等体时,输出以下错误:
2020-11-22 22:28:14.635 UTC [main] InitCmd -> ERRO 001 由于从目录 /etc/hyperledger/fabric/msp 设置类型为 bccsp 的 MSP 时出错,无法运行对等点:在 SigningIdentityInfo 中找不到 KeyMaterial
我想问题与openssl生成的EC Key的格式有关?下面是导致错误的私钥示例:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIBEzBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIQtU4Ouojj6MCAggA
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECC+I/OCseSp1BIHAeSmeCRFHlKzO
Hw1RK5wQi8hSulmi4HZjMJC6rofFFwGqgbBCKo9dBbJXYYsYc1AukAKyo+w6W4a3
0BpTGNAP4/eVB0dsFm7oHpJiZ2jmvgsYTHtchCciCastVph7zOfyggobPfEO97cU
iwtq3v1R5yGA1ic/2vIqtSxynnGzrTiUnwnrvPC0hXMYiDHmYfN66BK898bfcaXp
MqnBFfOQSRAtVzN71hiBWjGjVm3Y4e/vDYse/GLsseDnPK9fw3XA
-----END ENCRYPTED PRIVATE KEY-----
与cryptogen工具生成的密钥比较后,它们具有不同的标题行和长度:
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDBXq+IIvjEQITYhxIui0ivOY/eVH1Ql8R5wXowiPSdLwZbsIrk6LHjw
jB8D9oqOW4agBwYFK4EEACKhZANiAASNt3bW+GicurJPRaj+oaY/xjaD9Mf/ic4i
3fdgI7wQnvXnGLX0Lf5ygd5ZyyhPW2Tvj7FdOW4vzaqZqSHkaG37GaP6JxpmR3/l
HuF+tncpsjUY7SXTCfzIysxvod9gN9g=
-----END EC PRIVATE KEY-----
有什么建议可以解决这个问题吗?
解决方案
Fabric 不支持加密密钥。使用 openssl 生成私钥时,您应该能够传递-nocrypt
生成未加密密钥的选项,或者您可以将加密密钥转换为未加密密钥:
openssl ec -in PRIVATEKEY.key -out PK_UNENCRYPPTED.pem
推荐阅读
- r - R 回归模型结果在训练/测试拆分和种子方面差异很大
- reactjs - 如何使用 webpack 优化 250 页(33MB)的 reactjs 项目?
- haskell - 使用 spawnOn 启动应用程序时如何在启动时设置默认工作区?
- python - Discord.py - 'Member' 对象没有属性 'channel'
- python - 在 Windows 上,将 CSV 文件导入 python
- databricks - 如何使用 COPY INTO 命令?
- python - 烧瓶线程池耗尽
- python - 如何将图像裁剪为例如形状。在 Discord.py 中使用 Pillow 圈?
- math - 从平面法线计算 Z 值
- python - 查找给定数据的日期(文本中:例如 2019 年 2 月 8 日)