Hashicorp Vault 无法写入 KV

32次阅读
没有评论

问题描述

在设置 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 = "***"
}

希望这对你有帮助!

正文完