我正在使用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证书时,我得到以下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 这里来识别椭圆曲线密码学主题的公钥信息。在第三节中,我看到Key Encipherment
不是椭圆曲线证书的有效密钥使用扩展.通过进一步的研究,我还发现,Key Encipherment
用于对称密钥加密(如果我错了,请纠正我)。
现在,我的问题是:
Key Encipherment
作为节点TLS证书中的一个关键用法,如果它不符合ECC标准?发布于 2020-07-31 11:44:02
Fabric CA目前支持同时颁发EC和RSA证书。默认的tls
配置文件设置双方所需的密钥使用/扩展密钥使用。
如果要限制使用,可以在tls
中编辑fabric-ca-server-config.yaml
签名配置文件部分。
signing:
default:
usage:
- digital signature
expiry: 8760h
profiles:
ca:
usage:
- cert sign
- crl sign
expiry: 43800h
caconstraint:
isca: true
maxpathlen: 0
tls:
usage:
- signing
- server auth
- client auth
expiry: 8760h
Fabric CA只检查以确保根证书设置的CA约束设置过真。它不限制它所签名的证书的关键用法,而是它自己的扩展(这不是技术要求)。如果证书的使用者也希望执行基于颁发者的证书的使用限制,他们自己也会这样做。例如,openssl
确保允许CA使用它所需的密钥对证书进行签名。不过,它并不禁止其他延期。
https://stackoverflow.com/questions/63012766
复制相似问题