我正在尝试用我自己的证书颁发机构和用户来安装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属性。怎么回事?
发布于 2020-04-10 08:09:53
请检查存在于:crypto-config/indepedent/admin3/msp/tlscacerts文件夹中的证书,并验证它是否为CA证书。
发布于 2020-04-12 04:14:21
我不能让一切正常工作,但我让这部分起作用了,而且这一点并不明显,所以我在这里记录它,以防它在将来帮助到某人:
首先,做好钥匙。不是证书,只是钥匙:
openssl ecparam -name prime256v1 -genkey -param_enc named_curve -out private-key.pemprime类型的椭圆曲线似乎是起作用的,重要的是它们是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的文件复制到密钥存储库中,但这还不够。该文件包含两个部分,必须删除第一个部分。所以我不得不进去移除前三行。
起作用了。在这样做之后,我获得了我的CA证书,它也用作TLS证书。但现在,我必须重新创建我的所有用户。
我尝试使用-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.cnfhttps://stackoverflow.com/questions/61132483
复制相似问题