programing

볼트 오류, 서버가 HTTPS 클라이언트에 HTTP 응답을 제공함

newstyles 2023. 10. 16. 21:38

볼트 오류, 서버가 HTTPS 클라이언트에 HTTP 응답을 제공함

저는 비밀 저장소로 하시코프 볼트를 사용하고 있으며 우분투 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"
#}

제가 문제를 해결했습니다.두 개 이상의 유사한 문제에 대해 예외가 일반적일 수 있지만 다음 명령을 실행한 후 생성된 루트 토큰을 내보내 문제를 해결했습니다.

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

다시 말하지만, 오류 메시지는 많은 다른 문제에 대해 유사할 수 있습니다.

Windows 10의 PowerShell에서는 다음과 같이 설정할 수 있었습니다.

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

그리고나서

vault status

올바르게 반환되었습니다.이것은 개발 모드에서 볼트 1.7.3에 있었습니다.

명령줄에 지정하고 Enter 키를 눌러 VOLT_ADDR을 에코할 수 있습니다 - 위의 설정된 줄과 동일하지만 = 기호와 그 이후의 모든 것을 생략합니다

$Env:VAULT_ADDR

출력:

키 값 --- ------ Seal Type shamir 초기화된 true sealed false total shares 1 임계값 1 버전
1.7.3 저장 유형 inmem 클러스터 이름 볼트-클러스터-80649ba2 클러스터 ID 2a35e304-0836-2896-e927-66722e7ca488 HA 사용
거짓의

새 터미널 창을 사용해 봅니다.이거 나한테 통했어요.

언급URL : https://stackoverflow.com/questions/63878533/vault-error-server-gave-http-response-to-https-client