Рейтинг:0

Terraform: "S3:path_to_terraform.tfstate": x509: невозможно проверить сертификат для потому что он не содержит IP SAN

флаг in

Я использую s3 для сохранения своего состояния. поскольку это пользовательский S3 (а не AWS), я настроил его, как показано ниже (используя IP + порт).

при запуске terraform init я получил эту ошибку:

Успешно настроен бэкэнд "s3"! Terraform автоматически используйте этот бэкэнд, если конфигурация бэкэнда не изменится. Ошибка состояние обновления: RequestError: не удалось отправить запрос, вызванный: Get "https://custom_S3_server_IP:8082/mytest/my_sub_folder/terraform.tfstate": x509: невозможно проверить сертификат для custom_S3_server_IP, поскольку он не содержать любые IP SAN

Обычно, когда я сталкиваюсь с подобной проблемой, я предполагаю, что это проверка конечной точки (dns). Но похоже, я не могу отключить его с помощью Terraform. вот моя конфигурация S3:

  бэкенд "s3" {
    регион = "ДЕГО"
    skip_region_validation = истина
    force_path_style = истина
    ведро = "мой тест"
    ключ = "моя_подпапка/terraform.tfstate"
    ключ_доступа = "мойК"
    секрет_ключ = "мойS"
    конечная точка = "custom_S3_server_IP:8082"
  } 

Редактировать: Я знаю, что сертификат не содержит введенного IP-адреса, но у каждого клиента, у которого есть эта проблема, всегда есть способ отключить проверку DNS. например Реализация Terraform aws может использовать параметр «--no-verify-ssl», чтобы преодолеть это, но я не смог найти ни одного свойства, которое бы использовало что-то подобное

Рейтинг:0
флаг in

Похоже, в настоящее время нет возможности отключить проверку tls с использованием terraform s3 в качестве сегмента состояния.

вот ссылка на открытый вопрос:

https://github.com/hashicorp/terraform/issues/26883

Рейтинг:0
флаг us

В сертификате TLS вашего сервера S3 нет IP-адреса, указанного в поле «Альтернативное имя субъекта». Вам нужно использовать правильный сертификат на вашем сервере S3, который имеет это.

Более простой альтернативой является использование DNS-имени в URL-адресе и убедитесь, что ваш сертификат имеет DNS-имя в поле SAN.

winter avatar
флаг in
Я знаю, но в aws-cli вы можете добавить --no-verify-ssl, который, как я предположил, также может каким-то образом использоваться в конфигурации S3 terraform (я отредактировал свой пост, чтобы он был понятнее)
флаг us
Вы не должны рисковать целостностью своей системы, отключая важные функции безопасности, такие как проверка сертификата.
winter avatar
флаг in
ну, так как это проверка TLS на стороне клиента, я не так беспокоюсь ... мы используем terraform за vpn, и в настоящее время он тестируется. ;)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.