【问题标题】:Vault Error, Server gave HTTP response to HTTPS clientVault 错误,服务器向 HTTPS 客户端提供 HTTP 响应
【发布时间】:2020-12-31 20:02:06
【问题描述】:

我将 Hashicorp 保险库用作秘密存储,并通过 Ubuntu 20.04 上的 apt 存储库安装它。

之后,我添加了访问 UI 的根密钥,并且可以使用 UI 添加或删除机密。

每当我尝试使用命令行添加或获取机密时,都会收到以下错误:

jarvis@saki:~$ vault kv get secret/vault 
Get "https://127.0.0.1:8200/v1/sys/internal/ui/mounts/secret/vault": http: server gave HTTP response to HTTPS client

我的保管库配置如下所示:

# Full configuration options can be found at https://www.vaultproject.io/docs/configuration

ui = true

#mlock = true
#disable_mlock = true

storage "file" {
  path = "/opt/vault/data"
}

#storage "consul" {
#  address = "127.0.0.1:8500"
#  path    = "vault"
#}

# HTTP listener
#listener "tcp" {
#  address = "127.0.0.1:8200"
#  tls_disable = 1
#}

# HTTPS listener
listener "tcp" {
  address       = "0.0.0.0:8200"
  tls_cert_file = "/opt/vault/tls/tls.crt"
  tls_key_file  = "/opt/vault/tls/tls.key"
}

# Example AWS KMS auto unseal
#seal "awskms" {
#  region = "us-east-1"
#  kms_key_id = "REPLACE-ME"
#}

# Example HSM auto unseal
#seal "pkcs11" {
#  lib            = "/usr/vault/lib/libCryptoki2_64.so"
#  slot           = "0"
#  pin            = "AAAA-BBBB-CCCC-DDDD"
#  key_label      = "vault-hsm-key"
#  hmac_key_label = "vault-hsm-hmac-key"
#}

【问题讨论】:

  • 您应该显示您的保管库配置。
  • 它在/etc/vault.d/vault.hcl。即使那样,它也不会被配置为生产使用,你需要自己做。我建议您使用vault tutorial
  • 我已经编辑了帖子,它对找出问题所在有帮助吗?
  • 你能试着打电话给curl -v https://127.0.0.1:8200/v1/sys/seal-status 告诉我们结果吗?
  • 它成功了,我必须导出根令牌才能使用内存开发服务器添加和获取数据,感谢所有帮助。

标签: spring hashicorp-vault spring-vault


【解决方案1】:

我解决了这个问题。尽管该异常可能对不止一个类似问题很常见,但我通过导出运行此命令后生成的根令牌解决了该问题:

vault server -dev

输出是这样的

...

You may need to set the following environment variable:

    $ export VAULT_ADDR='http://127.0.0.1:8200'

The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.

Unseal Key: 1+yv+v5mz+aSCK67X6slL3ECxb4UDL8ujWZU/ONBpn0=
Root Token: s.XmpNPoi9sRhYtdKHaQhkHP6x

Development mode should NOT be used in production installations!
...

运行这些命令,它应该会这样做:

export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN="s.XmpNPoi9sRhYtdKHaQhkHP6x"

注意:将“s.XmpNPoi9sRhYtdKHaQhkHP6x”替换为上述命令的输出中收到的令牌。

然后运行以下命令检查状态:

vault status

同样,对于许多不同的问题,错误消息可能是相似的。

【讨论】:

    【解决方案2】:

    在 Windows 10 上的 PowerShell 中,我可以这样设置:

    $Env:VAULT_ADDR='http://127.0.0.1:8200'
    

    然后

    vault status
    

    正确返回。这是在开发模式下的 Vault 1.7.3 上

    您可以通过在命令行中指定 VAULT_ADDR 并按 Enter 来回显它 - 与上面的设置行相同,但省略 = 符号及其后面的所有内容

    $Env:VAULT_ADDR
    

    输出:

    键值 --- ----- 密封类型 shamir 已初始化 true 密封 false 总份额 1 阈值 1 版本
    1.7.3 存储类型 inmem 集群名称 vault-cluster-80649ba2 集群 ID 2a35e304-0836-2896-e927-66722e7ca488 启用 HA
    假的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 2021-04-19
      • 2021-04-27
      • 1970-01-01
      • 2020-05-07
      • 2019-12-05
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多