公证签名人配置文件
预计阅读时间:5分钟
本文档适用于正在运行自己的公证服务 并希望指定自定义选项的用户。
概述
公证签名人需要环境变量
来加密静态私钥。它还需要一个配置文件,在命令行中使用该-config
标志指定了该文件的路径。
这是完整的签名者配置文件示例:
{
"server": {
"http_addr": ":4444",
"grpc_addr": ":7899",
"tls_cert_file": "./fixtures/notary-signer.crt",
"tls_key_file": "./fixtures/notary-signer.key",
"client_ca_file": "./fixtures/notary-server.crt"
},
"logging": {
"level": 2
},
"storage": {
"backend": "mysql",
"db_url": "user:pass@tcp(notarymysql:3306)/databasename?parseTime=true",
"default_alias": "passwordalias1"
},
"reporting": {
"bugsnag": {
"api_key": "c9d60ae4c7e70c4b6c4ebd3e8056d2b8",
"release_stage": "production"
}
}
}
有关reporting
和logging
部分的详细信息,请参见有关常见公证配置部分的文档
。
服务器部分(必填)
在这种情况下,“服务器”是指公证人签名者的HTTP / GRPC服务器,而不是“公证人服务器”。
例子:
{
"server": {
"http_addr": ":4444",
"grpc_addr": ":7899",
"tls_cert_file": "./fixtures/notary-signer.crt",
"tls_key_file": "./fixtures/notary-signer.key",
"client_ca_file": "./fixtures/notary-server.crt"
}
}
范围 | 必需的 | 描述 |
---|---|---|
http_addr |
是的 | 用于侦听HTTP流量的TCP地址(IP和端口)。例子:
|
grpc_addr |
是的 | 侦听GRPC流量的TCP地址(IP和端口)。例子:
|
tls_key_file |
是的 | 用于HTTPS的私钥的路径。该路径是相对于配置文件目录的。 |
tls_cert_file |
是的 | 用于HTTPS的证书的路径。该路径是相对于配置文件目录的。 |
client_ca_file |
不 | 相互认证所信任的根证书。如果提供,则连接到公证签名人的所有客户端都需要由该根签名的客户端证书。如果未提供,则不需要相互认证。该路径是相对于配置文件目录的。 |
存储部分(必填)
这用于存储加密的私钥。目前,我们仅支持MySQL或内存存储。
例子:
"storage": {
"backend": "mysql",
"db_url": "user:pass@tcp(notarymysql:3306)/databasename?parseTime=true",
"default_alias": "passwordalias1"
}
范围 | 必需的 | 描述 |
---|---|---|
backend |
是的 | 必须为"mysql" 或"memory" 。如果"memory" 选择,则将db_url
忽略。 |
db_url |
是的,如果没有 memory |
该
数据源名称来访问数据库。
(包括parseTime=true 在DSN中) |
default_alias |
是的,如果没有 memory |
此参数指定用于加密数据库中私钥的当前密码的别名。使用此密码对所有新的私钥进行加密,还必须将其作为环境变量提供
NOTARY_SIGNER_<DEFAULT_ALIAS_VALUE> 。有关
更多信息,请参见环境变量部分。 |
环境变量(如果使用MySQL,则为必需)
公证签名人以加密形式存储私钥。还存储用于加密密钥的密码短语的别名。为了加密用于存储的密钥并解密用于签名的密钥,必须将密码短语作为环境变量传入。
例如,上面的配置将默认密码别名指定为
passwordalias1
。
如果使用此配置,则必须:
export NOTARY_SIGNER_PASSWORDALIAS1=mypassword
使该公证员签名者知道所有的密钥与密码加密
mypassword
和解密存储与密码别名任何私钥
passwordalias1
与密码mypassword
。
较旧的密码也可以作为环境变量提供。
假设您要更改用于创建新密钥的密码(尚不支持旋转密码短语并重新加密所有私钥)。
您可以将配置更改为:
"storage": {
"backend": "mysql",
"db_url": "user:pass@tcp(notarymysql:3306)/databasename?parseTime=true",
"default_alias": "passwordalias2"
}
然后,您可以设置:
export NOTARY_SIGNER_PASSWORDALIAS1=mypassword
export NOTARY_SIGNER_PASSWORDALIAS2=mynewfancypassword
这样,所有新密钥都使用密码短语进行加密和解密
mynewfancypassword
,但是使用密码短语加密的旧密钥
mypassword
仍然可以解密。
旧密码的环境变量是可选的,但如果未提供旧密码,则Notary Signer无法解密,并且使用这些密钥对数据进行签名的尝试将失败。