faric-ca-server使用https

Posted 每天看一遍,防止恋爱&&堕落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了faric-ca-server使用https相关的知识,希望对你有一定的参考价值。

文章目录

声明使用的版本

  • fabric版本如下:1.4.8
  • node-sdk版本:1.4.8
  • node版本:v8.11.1
  • ubuntu版本:16.04

两种方法使用fabric-ca

有两种方法都能使用fabric-ca-server,下文分别采用这两种形式都打开https

  • 第一种:使用二进制工具fabric-ca-server
  • 第二种:使用docker容器,需要配置docker-compose.yaml

使用ca-server的docker容器打开https

配置对应的yaml文件

文件的内容如下

version: '2'

networks:
  fabric-ca:
services:
   ca-tls:
     container_name: ca-tls
     image: hyperledger/fabric-ca
     command: sh -c 'fabric-ca-server start -d -b admin:adminpw --port 7052'
     environment:
       - FABRIC_CA_SERVER_HOME=/tmp/hyperledger/fabric-ca/crypto
       - FABRIC_CA_SERVER_TLS_ENABLED=true
       - FABRIC_CA_SERVER_CSR_CN=ca-tls
       - FABRIC_CA_SERVER_CSR_HOSTS=ca.drm.migu.com
       - FABRIC_CA_SERVER_CA_NAME=fabric-ca
       - FABRIC_CA_SERVER_PORT=7052
       - FABRIC_CA_SERVER_DEBUG=true
     volumes:
       - ~/fabric-ca-tls:/tmp/hyperledger/fabric-ca
     networks:
       - fabric-ca
     ports:
       - 7052:7052

FABRIC_CA_SERVER_CSR_HOSTS非常重要,如果你只打算在本机使用,则这里可以修改成0.0.0.0或者127.0.0.1

停止/启动docker

停止docker:

docker rm -f ca-tls

或者

docker-compose down

启动docker:

docker-compose up -d

查看容易的log

docker logs -f -t --since="2018-02-08" --tail=100 ca-tls

显示的内容大概如下

查看证书目前的ip

openssl x509 -in ~/fabric-ca-tls/crypto/ca-cert.pem -text

目前的ip地址显示为域名,所以这里不是0.0.0.0的

在其他机器上使用ca-server

下载对应的tls证书,这个.pem才是我们的tls证书

sz ~/fabric-ca-tls/crypto/ca-cert.pem

因为我们配置为域名,所以需要在使用ca-server注册用户的pc上配置其hosts,如果不配置则提示如下内容

2021-06-04T02:04:10.690Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: getaddrinfo ENOTFOUND ca.drm.migu.com ca.drm.migu.com:7052], stack=Error: Calling enrollment endpoint failed with error [Error: getaddrinfo ENOTFOUND ca.drm.migu.com ca.drm.migu.com:7052]
    at ClientRequest.request.on (/home/fabric-node2/go/src/github.com/hyperledger/fabric-samples-1.4.8/manager-server/node_modules/fabric-ca-client/lib/FabricCAClient.js:487:12)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at TLSSocket.socketErrorListener (_http_client.js:387:9)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
Failed to generate MSP : Error: Calling enrollment endpoint failed with error [Error: getaddrinfo ENOTFOUND ca.drm.migu.com ca.drm.migu.com:7052]
false 'end.'

修改host加入如下内容

192.168.81.134 ca.drm.migu.com

使用sdk注册后没问题了

fabric-node2@fabric-node2:~/go/src/github.com/hyperledger/fabric-samples-1.4.8/manager-server/test111$ node genMSP.js 
/home/fabric-node2/go/src/github.com/hyperledger/fabric-samples-1.4.8/manager-server/test111/profile/sdk110/connection-sdk2.json
/home/fabric-node2/go/src/github.com/hyperledger/fabric-samples-1.4.8/manager-server/test111/profile/sdk110/connection-sdk2.json https://ca.drm.migu.com:7052 true 11111111111
Wallet path: /home/fabric-node2/go/src/github.com/hyperledger/fabric-samples-1.4.8/manager-server/test111/wallet
Admin@test.cn
Successfully registered user Admin@test.cn
orderer.test.cn
Successfully registered user orderer.test.cn
orderer2.test.cn
Successfully registered user orderer2.test.cn
orderer3.test.cn
Successfully registered user orderer3.test.cn
Successfully registered user Admin@drm.test.cn
Successfully registered user peer0.drm.test.cn
Successfully registered user Admin@video.test.cn
Successfully registered user peer0.video.test.cn
true 'end.'

ca-server配置使用https的时候或自动生成一个tls-cert.pem,但这并不是给client使用的,而是使用ca-cert.pem;如果使用tls-cert.pem,则提示如下错误

21-06-04T02:09:52.367Z - error: [FabricCAClientService.js]: Failed to enroll admin, error:%o message=Calling enrollment endpoint failed with error [Error: unable to verify the first certificate], stack=Error: Calling enrollment endpoint failed with error [Error: unable to verify the first certificate]

使用二进制工具打开https

新建并进入ca主目录

mkdir ~/ca
cd ~/ca 

一个标识打开https

fabric-ca-server start -b admin:adminpw --home ./ca-msp --cfg.affiliations.allowremove --cfg.identities.allowremove --ca.name=fabric-ca --tls.enabled=true --csr.hosts ca.drm.migu.com

接下来的步骤

同上面测试是一样的

最终生成的文件夹如下

以上是关于faric-ca-server使用https的主要内容,如果未能解决你的问题,请参考以下文章

faric-ca-server使用https

如果我使用 https,设置建立安全上下文 =“假”有啥影响?

如何修复 HTTPS Silverlight 应用程序上下文中的 WCF maxClockSkew 问题?

使用上下文跳出循环

如何使用 VSCode 扩展添加上下文菜单?

Nginx 配置 HTTP 和 HTTPS