问题描述
在设置 Hashicorp Vault 服务器时遇到了一些问题。无法在本地或通过域名写入/读取数据(用户知道将其公开到网络上的风险,并且对于此测试是可以接受的)。
错误信息:
Error writing data to secret/keys: Put http://localhost/v1/secret/keys: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
以下是我的配置文件:
/etc/vault.hcl
backend "file" {
path = "/var/lib/vault"
address = "127.0.0.1:8200"
scheme = "http"
redirect_addr = "http://mydomain.com:8200"
VAULT_ADDR = "http://mydomain.com:8200"
}
listener "tcp" {
address = "http://mydomain.com"
tls_disable = 0
tls_cert_file = "/etc/letsencrypt/live/mydomain/fullchain.pem"
tls_key_file = "/etc/letsencrypt/live/mydomain/privkey.pem"
}
/etc/systemd/system/vault.service
[Unit]
Description=a tool for managing secrets
Documentation=https://vaultproject.io/docs/
After=network.target
ConditionFileNotEmpty=/etc/vault.hcl
[Service]
User=vault
Group=vault
ExecStart=/usr/local/bin/vault server -config=/etc/vault.hcl
ExecReload=/usr/local/bin/kill --signal HUP $MAINPID
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
Capabilities=CAP_IPC_LOCK+ep
SecureBits=keep-caps
NoNewPrivileges=yes
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
其他配置:
VAULT_ADDR=http://mydomain.com
其他信息:
我使用了以下命令 sudo vault operator unseal -tls-skip-verify
,因为我无法通过 HTTPS 进行操作。
我使用以下命令配置服务器 vault server -config=/etc/vault.hcl
。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据回答1,你的 VAULT_ADDR 设置为 HTTP,但是 Vault 正在监听 TLS – 你收到的错误是 HTTP 请求接收到 TLS 握手。
尝试将 VAULT_ADDR 更改为 https://mydomain.com
。
方案2
根据回答2,你可以尝试以下操作:
1. 将 VAULT_ADDR 更改为 https://mydomain.com
。
2. 在 vault.hcl 中将 listener tcp 地址更改为以下内容:
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 0
tls_cert_file = "***"
tls_key_file = "***"
}
希望这对你有帮助!
正文完