公证签名人配置文件

预计阅读时间: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"
    }
  }
}

有关reportinglogging部分的详细信息,请参见有关常见公证配置部分的文档 。

服务器部分(必填)

在这种情况下,“服务器”是指公证人签名者的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和端口)。例子:
  • ":4444"表示在所有IP上监听端口4444(因此监听所有接口,例如运行时列出的接口 ifconfig
  • "127.0.0.1:4444"表示仅在本地主机上监听端口4444。这意味着该服务器只能在本地(通过SSH隧道或仅在本地终端上)访问。
grpc_addr 是的 侦听GRPC流量的TCP地址(IP和端口)。例子:
  • ":7899"表示侦听所有IP上的端口7899(因此侦听所有接口,例如运行时列出的接口 ifconfig
  • "127.0.0.1:7899"表示仅在本地主机上侦听端口7899。这意味着该服务器只能在本地(通过SSH隧道或仅在本地终端上)访问。
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无法解密,并且使用这些密钥对数据进行签名的尝试将失败。

码头工人公证人公证人客户公证人服务器公证人服务器公证人签名人公证人签名人