Hashicorp Vault 错误:检查密封状态时出错

Sam*_*y65 5 ssl keystore ssl-certificate spring-boot hashicorp-vault

我正在使用 Hashicorp 保险库生成自签名证书并成功生成 CA 证书,使用以下链接颁发 ca、ca-chain 和私钥: Policies , Build Your Certificate。我还可以.pem将证书、issuesCa、caChain 和 privateKey 文件的组合结果成功导入到 Java 密钥库中,keytool以获取.jks.
因此,我使用此命令成功启动了保险库vault server -config=config.hcl,输出如下:

==> Vault server configuration:

             Api Address: https://test.sammy.com:8200
                     Cgo: disabled
         Cluster Address: https://test.sammy.com:8201
              Listener 1: tcp (addr: "127.0.0.1:9000", cluster address: "127.0.0.1:9001", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
              Listener 2: tcp (addr: "127.0.0.1:8200", cluster address: "127.0.0.1:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "enabled")
               Log Level: info
                   Mlock: supported: true, enabled: true
           Recovery Mode: false
                 Storage: inmem
                 Version: Vault v1.4.2

==> Vault server started! Log data will stream in below:

2020-06-28T23:37:01.489+0100 [INFO]  proxy environment: http_proxy= https_proxy= no_proxy=
Run Code Online (Sandbox Code Playgroud)

使用config.hcl此 StackOverflow问题中的配置文件(如下所示):

backend "inmem" {}

listener "tcp" {
  address = "127.0.0.1:9000"
  tls_disable = 1
}

listener "tcp" {
  address = "127.0.0.1:8200"
  tls_disable = 0
  tls_cert_file = "/Vault/pki_ca_cert_chain.pem"
  tls_key_file = "Vault/vault.key.pem"
}

# Advertise the non-loopback interface
api_addr = "https://test.sammy.com:8200"
cluster_addr = "https://test.sammy.com:8201"
Run Code Online (Sandbox Code Playgroud)

我使用此命令公开服务器地址:export VAULT_ADDR='https://test.sammy.com:8200'.
我现在遇到的问题是,当我运行此命令查看服务器状态时vault status,出现以下错误:

Error checking seal status: Get https://test.sammy.com:8200/v1/sys/seal-status: dial tcp 45.33.2.79:8200: connect: no route to host
Run Code Online (Sandbox Code Playgroud)

我的 Spring Boot 应用程序选择了 truststore 文件,但在运行时抛出了这个异常: I/O exception (java.net.NoRouteToHostException) caught when processing request to {s}->https://test.sammy.com:8200: No route to host (Host unreachable)或者简单地说,Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable). 我的 bootstrap.yml 看起来像这样

spring:
  application:
    name: hashicorp-spring-app
  cloud:
    vault:
      enabled: true
      host: test.sammy.com
      port: 8200
      scheme: https
      authentication: cert
      ssl:
        trust-store: classpath:vault-truststore.jks
        trust-store-password: somethingsecret
Run Code Online (Sandbox Code Playgroud)


当我尝试使用以下命令初始化 Vault 时,出现不同的错误:vault operator init

Error initializing: Put https://test.sammy.com:8200/v1/sys/init: dial tcp 45.79.19.196:8200: i/o timeout
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用此链接来修复它,但是我仍然收到上面的 I/O 超时错误。我很确定我错过了一些可能很简单的东西,并且已经在互联网上找到了一个简单的解决方案,但似乎找不到任何解决方案,所以请提供任何帮助,我们将不胜感激!!!

小智 0

根据运行“保管库状态”时的错误消息,您用于 api_addr 和 cluster_addr 的 FQDN 似乎正在解析为公共地址 45.33.2.79,该地址不可路由,并且可能不会托管您的保管库。

将 api_addr 和 cluster_addr 更改为: api_addr = "https://127.0.0.1:8200" cluster_addr = "https://127.0.0.1:8201"

这应该对您看到的两个错误进行排序。