gpt4 book ai didi

ssl - Hyperledger Fabric - 来自 fabric-ca 的带有 TLS 的外部链码

转载 作者:行者123 更新时间:2023-12-04 22:40:00 26 4
gpt4 key购买 nike

我正在尝试使用新的外部链码服务功能设置 Hyperledger Fabric。使用默认配置(无 tls 或对等身份验证)运行链代码按预期工作。
我已经阅读了很多关于这个主题的教程,但是他们都只使用自签名证书来达到这个目的——这不是很有帮助,因为我正在配置一个生产系统。我想使用已经在我的网络中运行的证书颁发机构(fabric-ca-server),并为我的订购者、同行等提供证书。
我的问题是:如何使用现有的 CA 生成 root_cert 以及 client_cert 和 client_key?必须有一种方法可以使用fabric-ca-client 来做到这一点。我已经尝试使用我的同行组织的 ca 证书,但这不起作用(它似乎不包含链码服务的主机名)。
谢谢您的帮助。
更新 :
我现在尝试使用fabric-ca-client 的register 和enroll 命令来注册身份并为自己获取一个tls Enrollment-profile。

fabric-ca-client register --caname $CANAME --id.name chaincode --id.secret chainpw --tls.certfiles $certfile --loglevel error
fabric-ca-client enroll -u https://chaincode: chainpw@$CA_HOST_ADDRESS:$nodePort --caname $CANAME -M "$chainDir/msp" --csr.cn diplom-$validK8SHostName --csr.hosts diplom-$validK8SHostName --tls.certfiles $certfile --loglevel error
fabric-ca-client enroll -u https://chaincode: chainpw@$CA_HOST_ADDRESS:$nodePort --caname $CANAME -M "$chainDir/tls" --enrollment.profile tls --csr.hosts diplom-$validK8SHostName --csr.hosts localhost --tls.certfiles $certfile --loglevel error
从生成的 tls 目录中,我取了 /signcerts/cert.pem并通过 awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' ... 将其格式化为单行并将其作为 root_cert 粘贴到 connection.json 中.
同样,我将 cert.pem 文件复制到链码容器中并设置环境变量 CORE_CHAINCODE_TLS_CLIENT_CACERT_FILE指向这个文件。但是,对等方仍然无法连接到容器。
ClientHandshake -> ERRO 06c Client TLS handshake failed after 752.754µs with error: tls: first record does not look like a TLS handshake
更新 2 :
好像我在链码服务上设置了错误的环境变量。 CORE_CHAINCODE_TLS_CERT_FILE必须设置为生成的 /signcerts/cert.pemCORE_CHAINCODE_TLS_KEY_FILE/keystore 到私钥.
链码服务现在似乎接受了证书,但对等方提示它们是由未知机构签署的。
更新 3 :
又有一点进步。好像我在 fabric-ca-client 中犯了一个错误命令。我不小心设置了 csr.cn 参数,从而覆盖了我的 CA 主机名。随着他的关注,我能够向我的 CA 注册我的链码服务,并获得相应的 TLS 证书以对我的服务有效并与组织 CA 结帐:-)
fabric-ca-client register --caname $CANAME --id.name $NAME --id.secret $PW --tls.certfiles $certfile --loglevel error
fabric-ca-client enroll -u https://$NAME:$PW@$CA_HOST_ADDRESS:$nodePort --caname $CANAME -M "$chainDir/msp" --csr.hosts chain-$validK8SHostName --tls.certfiles $certfile --loglevel error
fabric-ca-client enroll -u https://$NAME:$PW@$CA_HOST_ADDRESS:$nodePort --caname $CANAME -M "$chainDir/tls" --enrollment.profile tls --csr.hosts chain-$validK8SHostName --csr.hosts localhost --tls.certfiles $certfile --loglevel error

最佳答案

如需更多信息,https://github.com/hyperledgendary/contract-as-a-service是一个将链代码显示为外部服务的示例存储库。
那里采取的方法确实是维克多在上面描述的,并且是 AFAIK 一个很好的方法来做到这一点。

关于ssl - Hyperledger Fabric - 来自 fabric-ca 的带有 TLS 的外部链码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68670102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com