Amazon-S3
Terraform:“S3:path_to_terraform.tfstate”:x509:無法驗證 <IP> 的證書,因為它不包含任何 IP SAN
我正在使用 s3 來保存我的狀態。因為這是一個自定義 S3(而不是 AWS),所以我將其配置如下(使用 IP + 埠)。
執行 terraform init 時收到此錯誤:
成功配置後端“s3”!除非後端配置發生更改,否則 Terraform 將自動使用此後端。刷新狀態時出錯:RequestError:發送請求失敗,原因是:獲取“https://custom_S3_server_IP:8082/mytest/my_sub_folder/terraform.tfstate”:x509:無法驗證 custom_S3_server_IP 的證書,因為它不包含任何 IP SAN
通常當我遇到這樣的問題時,我認為它是端點(dns)驗證。但似乎我無法使用 Terraform 禁用它。這是我的 S3 配置:
backend "s3" { region = "DEGO" skip_region_validation = true force_path_style = true bucket = "mytest" key = "my_sub_folder/terraform.tfstate" access_key = "myK" secret_key = "myS" endpoint = "custom_S3_server_IP:8082" }
編輯:我知道證書不包含輸入的 IP,但是在每個有此問題的客戶端中,總有一種方法可以禁用 dns 驗證。例如 Terraform aws 實現可以使用“–no-verify-ssl”選項來克服這個問題,但我找不到任何使用類似這樣的屬性
您的 S3 伺服器的 TLS 證書沒有在其主題備用名稱欄位中列出 IP 地址。您需要在具有此證書的 S3 伺服器中使用適當的證書。
一個更簡單的替代方法是在 URL 中使用 DNS 名稱,並確保您的證書在其 SAN 欄位中具有 DNS 名稱。
似乎目前沒有使用 terraform s3 作為狀態桶來禁用 tls 驗證的選項。
這是一個未解決問題的參考: