?
This document uses PHP Chinese website manual Release
本文檔適用于那些希望指定自定義選項的運行自己的公證服務的人員。
公證簽名人需要環(huán)境變量來加密私人密鑰。它還需要一個配置文件,該文件是使用-config
標志在命令行上指定的路徑。
這是一個完整的簽名者配置文件示例; 請點擊頂級JSON鍵以了解更多關于與該鍵相對應的配置部分:
{ "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" } }}
在本例中,“server”指的是公證簽字人的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" }
參數(shù) | 是否需要 | 描述 |
---|---|---|
http_addr | 是 | 偵聽HTTP通信的TCP地址(IP和端口)。例如:“:4444”表示監(jiān)聽所有IP上的端口4444(因此所有接口,例如運行ifconfig時列出的那些接口)“127.0.0.1:4444”表示只偵聽本地主機上的端口4444。這意味著除了本地服務器之外,服務器將不可訪問(通過SSH隧道或僅在本地終端上) |
grpc_addr | 是 | 偵聽GRPC流量的TCP地址(IP和端口)。例如:“:7899”表示監(jiān)聽所有IP上的端口7899(因此所有接口,如運行ifconfig時列出的那些接口)“127.0.0.1:7899”表示只監(jiān)聽本地主機上的7899端口。這意味著除了本地服務器之外,服務器將不可訪問(通過SSH隧道或僅在本地終端上) |
tls_key_file | 是 | 私鑰用于HTTPS的路徑。該路徑相對于配置文件的目錄。 |
tls_cert_file | 是 | 用于HTTPS的證書路徑。該路徑相對于配置文件的目錄。 |
client_ca_file | 否 | 要相互認證的可信根證書。如果提供,連接到公證簽名者的任何客戶端都必須擁有由此根簽名的客戶端證書。如果不提供,則不需要相互認證。該路徑相對于配置文件的目錄。 |
":4444"
意味著在所有IP上的端口4444上監(jiān)聽(因此所有接口,例如運行時列出的接口ifconfig
)
"127.0.0.1:4444"
表示僅在本地主機上偵聽端口4444。這意味著除了本地服務器之外,服務器將不可訪問(通過SSH隧道或僅在本地終端上)
`grpc_addr` yes The TCP address (IP and port) to listen for GRPC traffic. Examples:
":7899"
表示在所有IP上的端口7899上監(jiān)聽(因此所有接口,例如運行時列出的接口ifconfig
)
"127.0.0.1:7899"
表示僅在本地主機上偵聽端口7899。這意味著除了本地服務器之外,服務器將不可訪問(通過SSH隧道或僅在本地終端上)
`tls_key_file` yes The path to the private key to use for HTTPS. The path is relative to the directory of the configuration file. `tls_cert_file` yes The path to the certificate to use for HTTPS. The path is relative to the directory of the configuration file. `client_ca_file` no The root certificate to trust for mutual authentication. If provided, any clients connecting to Notary signer will have to have a client certificate signed by this root. If not provided, mutual authentication will not be required. The path is relative to the directory of the configuration file.
這用于存儲加密的私鑰。目前,我們只支持MySQL或內(nèi)存存儲.
例子:
"storage": { "backend": "mysql", "db_url": "user:pass@tcp(notarymysql:3306)/databasename?parseTime=true", "default_alias": "passwordalias1" }
參數(shù) | 需要 | 描述 |
---|---|---|
后端 | 是 | 必須是“mysql”或“內(nèi)存”。如果選擇“內(nèi)存”,則會忽略db_url。 |
db_url | 是(如果不是內(nèi)存) | 用于訪問數(shù)據(jù)庫的數(shù)據(jù)源名稱。(注意:請包含parseTime = true作為DSN的一部分) |
default_alias | 是(如果不是內(nèi)存) | 此參數(shù)指定用于加密數(shù)據(jù)庫中私鑰的當前密碼的別名。所有新私鑰都將使用此密碼進行加密,該密碼也必須作為環(huán)境變量NOTARY_SIGNER_ <DEFAULT_ALIAS_VALUE>提供。請參閱環(huán)境變量部分了解更多信息。 |
公證簽名人以加密形式存儲私鑰。還會存儲用于加密密鑰的密碼短語的別名。為了加密存儲密鑰和解密密鑰以進行簽名,密碼必須作為環(huán)境變量傳入。
例如,上面的配置指定默認密碼別名為passwordalias1
...
如果使用此配置,則必須:
export NOTARY_SIGNER_PASSWORDALIAS1=mypassword
使該公證員簽名者知道加密與密碼的所有密鑰mypassword
,并解密存儲與密碼別名任何私鑰passwordalias1
與密碼mypassword
。
舊密碼也可以作為環(huán)境變量提供。
假設您想更改用于創(chuàng)建新密鑰的密碼(旋轉密碼并重新加密所有私鑰尚不受支持)。
您可以將配置更改為:
"storage": { "backend": "mysql", "db_url": "user:pass@tcp(notarymysql:3306)/databasename?parseTime=true", "default_alias": "passwordalias2" }
然后你可以設置:
export NOTARY_SIGNER_PASSWORDALIAS1=mypasswordexport NOTARY_SIGNER_PASSWORDALIAS2=mynewfancypassword
這樣,所有新密鑰都將使用密碼進行加密和解密mynewfancypassword
,但使用密碼短語加密的舊密鑰mypassword
仍然可以解密。
舊密碼的環(huán)境變量是可選的,但如果不提供舊密鑰,公證簽名者將無法解密舊密鑰,使用這些密鑰對數(shù)據(jù)簽名的嘗試將失敗。
公證服務器配置文件
公證服務器和簽名者共有的配置部分