深度学习
服务端配置文件最常见的路径在/etc/hyperledger/fabric-ca-server/fabric- ca-server-config.yaml,包括通用配置、TLS配置、CA配置、注册管理配置、数据库配置、LDAP配置、组织结构配置、签名、证书 申请等几个部分。
1.通用配置
包括服务监听的端口号,是否输出更多的DEBUG日志等:
·port:7054:指定服务的监听端口;
·debug:false:是否启用DEBUG模式,输出更多的调试信息。
2.TLS配置
主要包括是否在服务端启用TLS,以及如果启用TLS后进行身份验证的证书和签名的私钥。客户端进行TLS认证的模式可以有如下几种:
·NoClientCert:不启用,为默认值;
·RequestClientCert:请求客户端提供证书;
·RequireAnyClientCert:要求客户端提供合法格式的证书;
·VerifyClientCertIfGiven:如果客户端提供证书,则进行验证;
·RequireAndVerifyClientCert:要求并且要验证客户端的证书。
各个配置项的具体功能可以参见下面示例的注释部分:
tls:
# 是否启用TLS,默认为否。
enabled: false
# TLS证书和密钥文件
certfile: ca-cert.pem
keyfile: ca-key.pem
clientauth: # 客户端验证配置,默认不进行身份验证
type: noclientcert
certfiles: # 进行客户端身份验证时,信任的证书文件列表
3.CA配置
包括实例的名称、签名私钥文件、身份验证证书和证书链文件等。这些私钥和证书文件会用来作为生成ECert、TCert的根证书。
各个配置项的具体功能可以参见下面示例的注释部分:
ca:
# CA服务名称。可以支持多个服务。
name:
# 密钥文件(默认:ca-key.pem)
keyfile: ca-key.pem
# 证书文件(默认:ca-cert.pem)
certfile: ca-cert.pem
# 证书链文件(默认:chain-cert.pem)
chainfile: ca-chain.pem
4.注册管理配置
当fabric-ca-server自身提供用户的注册管理时使用,这种情况下需要禁用LDAP功能,否则fabric-ca-server将会把注册管理数据转发到LDAP进行查询。
该部分主要包括两方面的配置:
·对enrollment过程的用户名和密码进行验证;
·获取某个认证实体的用户属性信息。
用户属性可以附加到用户分发的TCerts中,用于实现对链码(chaincode)的访问权限控制。
各个配置项的具体功能可以参见下面示例的注释部分:
registry:
# 允许同一个用户名和密码进行enrollment的最大次数。特别是,-1表示无限制,0表示不
支持登记。
maxenrollments: -1
# 注册的实体信息,可以进行enroll。只有当LDAP未启用时起作用。
identities: # 可以指定多个
- name: admin
pass: adminpw
type: client
affiliation: ""
maxenrollments: -1 # 同上
attrs:
hf.Registrar.Roles: "client,user,peer,validator,auditor"
hf.Registrar.DelegateRoles: "client,user,validator,auditor"
hf.Revoker: true
hf.IntermediateCA: true # 该id是否是一个中间层的CA
5.数据库配置
目前,数据库支持SQlite3、Postgres、MySQL,可以在本段中进行配置。默认为SQlite3类型的本地数据库。如果要配置集群,则需要选用Postgres或MySQL远端数据库方式,并在前端部署负载均衡器(如Nginx或HAProxy)。
各个配置项的具体功能可以参见下面示例的注释部分:
db:
type: sqlite3
datasource: fabric-ca-server.db # sqlite3 文件路径
tls:
enabled: false # 是否启用 TLS 来连接到数据库
certfiles: db-server-cert.pem # PEM 格式的数据库服务器的 TLS 根证书,可以指定
多个,用逗号隔开。
client:
certfile: db-client-cert.pem # PEM格式的客户端证书文件
keyfile: db-client-key.pem # PEM格式的客户端证书私钥文件
例如,如果采用postgres类型,可以使用如下示例配置:
db:
type: postgres
datasource: host=postgres_server port=5432 user=admin password=pass dbname=
fabric-ca-server sslmode=verify-full
其中,sslmode可以为:
·disable:不启用SSL;
·require:启用SSL,但不进行证书校验;
·verify-ca:启用SSL,同时校验SSL证书是否是可信CA签发;
·verify-full:启用SSL,同时校验SSL证书是否是可信CA签发,以及校验服务器主机名是否匹配证书中名称。
如果采用MySQL类型,则可以使用如下的示例配置:
db:
type: mysql
datasource: root:rootpw@tcp(sql_server:3306)/fabric-ca?parseTime=true&tls=custom
6.LDAP配置
配置使用远端的LDAP来进行注册管理,认证enrollment的用户名和密码,并获取用户属性信息。此时,服务端将 按照指定的userfilter从LDAP获取对应的用户,利用其唯一识别名(distinguished name)和给定的密码进行验证。当LDAP功能启用时,registry中的配置将被忽略。
各个配置项的具体功能可以参见下面示例的注释部分:
ldap:
enabled: false # 是否启用LDAP,默认不启用
url: ldap://<adminDN>:<adminPassword>@<host>:<port>/<base> # LDAP的服务地址
tls:
certfiles:
- ldap-server-cert.pem # PEM格式的LDAP服务器的TLS根证书,可以为多个,用
逗号隔开
client:
certfile: ldap-client-cert.pem # PEM格式的客户端证书文件
keyfile: ldap-client-key.pem # PEM格式的客户端证书私钥文件
userfilter: (uid=%s) # 用户过滤模式
注意 Lightweight Directory Access Protocol(LDAP,轻量级目录访问协议),是一种为查询、搜索业务而设计的分布式数据库协议,一般具有优秀的读性能,但写性能较差。
7.组织结构配置
每个组织可以包括若干个部门:
# 机构信息
affiliations:
org1:
- department1
- department2
org2:
- department1
8.签发证书相关配置
签发证书相关的配置包括签名方法、证书超时时间等。fabric-ca-server可以作为用户证书的签发CA(默认情况下),还可以作为根CA来进一步支持其他中间CA。
各个配置项的具体功能可以参见下面示例的注释部分:
signing:
default: # 默认情况下,用于签署Ecert
usage: # 所签发证书的KeyUsage extension域
- digital signature
expiry: 8760h
profiles: # 不同的签发配置
ca: # 签署中间层CA证书时的配置模板
usage:
- cert sign # 所签发证书的KeyUsage extension域
expiry: 43800h
caconstraint:
isca: true
maxpathlen: 0 # 限制该中间层CA无法进一步签署中间层CA
9.证书申请请求配置
CA自身证书的申请请求配置。当CA作为根证书服务时,将基于请求生成一个自签名的证书;当CA作为中间证书服务时,将请求发送给上层的根证书进行签署。
具体各个配置项的功能可以参见下面示例的注释部分:
csr:
cn: fabric-ca-server # 这里建议跟服务器名一致
names:
- C: US
ST: "North Carolina"
L:
O: Hyperledger
OU: Fabric
hosts:
- fabric-ca-server
- localhost
ca: # 配置后会加入到证书的扩展字段
expiry: 131400h # 超时时间
pathlength: 1 # 允许产生的中间证书的深度
10.BCCSP配置
主要是配置所选择的加密库。各个配置项的具体功能可以参见下面示例的注释部分:
bccsp:
default: SW
sw:
hash: SHA2
security: 256
filekeystore:
# 存放密钥文件的路径
keystore: msp/keystore
11.多CA支持配置
通过cacount:自动创建除了默认CA外的多个CA实例,如ca1、ca2等。
通过cafiles:可以指定多个CA配置文件路径,每个配置文件会启动一个CA服务,注意不同配置文件之间需要避免出现冲突(如服务端口、TLS证书等)。
12.中间层CA配置
当CA作为中间层CA服务时的相关配置。包括父CA的地址和名称、登记信息、TLS配置等。注意,当intermediate.parentserver.url非空时,意味着本CA是中间层CA服务,否则为根CA服务。
各个配置项的具体功能可以参见下面示例的注释部分:
intermediate:
parentserver: # 父CA相关信息
url:
caname:
enrollment: # 在父CA侧的登记信息
hosts: # 证书主机名列表
profile: # 签发所用的profile
label: # HSM操作中的标签信息
tls: # TLS 相关配置
certfiles: # 信任的根CA证书
client: # 客户端验证启用时的相关文件
certfile:
keyfile:
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=911
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区