【问题标题】:What is the suggested openssl command to generate EC Key and CSR compatible with Hyperledger Fabric?生成与 Hyperledger Fabric 兼容的 EC 密钥和 CSR 的建议 openssl 命令是什么?
【发布时间】:2020-11-23 00:22:28
【问题描述】:

我们使用 openssl 生成 CSR(证书签名请求)如下。

  • 第一步:生成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

一个新的peer证书由上面列出的 CSR 中的相应 CA 颁发并签名。

peer启动时,输出如下错误:

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-----

有解决此问题的建议吗?

【问题讨论】:

    标签: openssl cryptography hyperledger-fabric


    【解决方案1】:

    Fabric 不支持加密密钥。使用 openssl 生成私钥时,您应该可以通过 -nocrypt 选项来生成未加密的密钥,或者您可以将加密的密钥转换为未加密的密钥:

    openssl ec -in PRIVATEKEY.key -out PK_UNENCRYPPTED.pem

    【讨论】:

    • 这里为什么是-1?
    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2022-07-14
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多