Ошибка хранилища, Сервер выдал HTTP-ответ клиенту HTTPS

#spring #hashicorp-vault #spring-vault

#spring #hashicorp-vault #spring-vault

Вопрос:

Я использую Hashicorp vault в качестве хранилища секретов и установил его через репозиторий apt в Ubuntu 20.04.

После этого я добавил корневой ключ для доступа к пользовательскому интерфейсу, и я могу добавлять или удалять секреты с помощью пользовательского интерфейса.

Всякий раз, когда я пытаюсь добавить или получить секрет с помощью командной строки, я получаю следующую ошибку :

 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"
#}
  

Комментарии:

1. Вы должны показать свою конфигурацию хранилища.

2. Это в /etc/vault.d/vault.hcl . Даже тогда он не будет настроен для производственного использования, вам нужно сделать это самостоятельно. Я рекомендую вам воспользоваться руководством по vault .

3. Я отредактировал сообщение, предлагает ли оно какую-либо помощь, чтобы выяснить, в чем проблема?

4. можете ли вы попробовать просто позвонить curl -v https://127.0.0.1:8200/v1/sys/seal-status и показать нам результат?

5. Это сработало, мне пришлось экспортировать корневой токен, чтобы иметь возможность добавлять и извлекать данные с помощью сервера разработки в памяти, спасибо за всю помощь.

Ответ №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
  

Опять же, сообщение об ошибке может быть похожим для многих разных проблем.

Комментарии:

1. У меня работал только экспорт VAULT_ADDR

Ответ №2:

В PowerShell в Windows 10 я смог установить его таким образом:

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

Затем

 vault status
  

возвращено правильно. Это было в Vault 1.7.3 в режиме разработки

Вы можете повторить VAULT_ADDR, указав его в командной строке и нажав enter — так же, как в строке set выше, но опустив знак = и все, что после него

 $Env:VAULT_ADDR
  

Вывод:

Значение ключа ——— Тип уплотнения shamir Инициализировано true Запечатано false Общее количество общих ресурсов 1 Пороговое значение 1 Версия
1.7.3 Тип хранилища Имя кластера inmem хранилище-кластер-80649ba2 Идентификатор кластера 2a35e304-0836-2896- e927-66722e7ca488 HA включен
false

Комментарии:

1. То же, что в Ubuntu 22.04

Ответ №3:

Попробуйте использовать новое окно терминала. Это сработало для меня