Hyperlegder Fabric:即使有,CA证书也没有CA属性

问题描述 投票:0回答:2

我正在尝试使用我自己的证书颁发机构和用户来设置Hyperledger Fabric安装。我正在使用版本1.4.6。我越来越近了。但这是我尝试创建频道时发生的情况:

peer channel create -o orderer.diro.umontreal.ca:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/indepedent/orderer/msp/signcerts/cert.pem

作为回应,我得到:

Cannot run peer because error when setting up MSP of type bccsp from directory /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/indepedent/admin3/msp: CA Certificate did not have the CA attribute, (SN: 6143ea1883f7a36a3d794bfab314ea05d9ddd270)

admin3是我当前向CA注册管理员的尝试。但是,当我尝试查看该用户的CA证书时,会发生以下情况:

openssl x509 -in crypto-config/indepedent/admin3/msp/cacerts/localhost-7054.pem -text -noout | grep CA:
            CA:TRUE, pathlen:0

因此,它似乎毕竟具有CA属性。有什么用?

ssl hyperledger-fabric x509certificate
2个回答
1
投票

请检查位于crypto-config/indepedent/admin3/msp/tlscacerts文件夹中的证书,并验证它是否为CA证书。


0
投票

我无法使所有部件正常工作,但是我无法正常工作,所以我在这里记录在案,以防将来对某人有所帮助:

首先,进行钥匙操作。不是证书,而是密钥:

openssl ecparam -name prime256v1 -genkey -param_enc named_curve -out private-key.pem

prime类型的椭圆曲线似乎是可行的,并且重要的是它们是named_cure类型。您可以更改大小。该部分在文档中。

然后制作证书:

openssl req -new -x509 -key private-key.pem -out tls-cert.pem -subj '/CN=Same name as original'  -days 10000 -addext "subjectAltName = DNS:localhost"

现在,当我启动CA时,它不起作用。它想要一个私钥。它为私钥提供了一个很长的十六进制数字。我将私钥作为名为<long_number>_sk的文件复制到密钥库中,但这还不够。该文件包含两个部分,必须删除第一个部分。因此,我必须删除前三行。

有效。完成此操作后,我获得了也可以用作TLS证书的CA证书。但是现在,我必须重新创建所有用户。

我尝试使用-config选项添加配置文件,但是删除了基本的CA:TRUE属性。

[编辑]

我还设法制作了一个配置文件,该文件可以使用较短的命令起作用,并且可以完成相同的操作:

[ req ]
distinguished_name     = req_distinguished_name
x509_extensions        = v3_intermediate_ca

[ v3_intermediate_ca ]
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints       = critical, CA:true, pathlen:0
keyUsage               = critical, digitalSignature, cRLSign, keyCertSign
subjectAltName         = @alt_names

[ req_distinguished_name ]
C                      = US
ST                     = CA
L                      = City
O                      = Institution
OU                     = Department
CN                     = main-ca

[ alt_names ]
DNS.0                  = CN localhost

然后:

openssl req -new -x509 -key private-key.pem -out tls-cert.pem -subj '/CN=The Subject' -days 10000 -config openssl.cnf
© www.soinside.com 2019 - 2024. All rights reserved.