【发布时间】:2020-07-21 10:43:01
【问题描述】:
我正在使用 Fabric CA 在 Hyperledger Fabric 中生成证书。我正在传递一个自签名证书作为 HLF 中注册和 TLS 证书颁发的根证书。它用于测试目的,因此使用相同的 Fabric CA(单一根证书)来颁发注册和 TLS 证书。根证书有以下Key Usages:
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
在节点注册证书中,我有以下Key Usages:
X509v3 Key Usage: critical
Digital Signature
现在,对于 TLS 证书,我运行 fabric-ca-client enroll 命令并将 --enrollment.profile tls 作为参数之一传递给调用。当我解码节点 TLS PEM 证书时,我得到以下Key Usages:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
现在,我参考了一个 RFC here 来识别椭圆曲线密码学主题公钥信息。在第 3 节中,我读到 Key Encipherment 不是椭圆曲线证书的有效密钥使用扩展。通过更多研究,我还发现,Key Encipherment 用于对称密钥加密(如果我错了,请纠正我)。
现在,我的问题是:
- 如果不符合 ECC RFC 标准,为什么 Fabric CA 在节点 TLS 证书中添加
Key Encipherment作为密钥用法? - 在椭圆曲线证书和密钥的情况下,TLS 通信实际上是如何发生的?
【问题讨论】:
-
我强烈建议您在邮件列表中提出这个问题,您更有可能让我们的一位实施此问题的加密专家(并且拥有深厚的技术背景)来回答您的问题:@ 987654322@
标签: ssl hyperledger-fabric tls1.2 hyperledger-fabric-ca