x509: сертификат, подписанный неизвестным органом при аутентификации в локальном экземпляре GitLab

# #gitlab #terraform

Вопрос:

У меня есть внутренний размещенный экземпляр GitLab, и я пытаюсь предоставить ресурсы, используя на нем Terraform.

Однако это приводит меня к следующей ошибке:

 **Error: Get "https://admin-repo.[ORG DOMAIN].com/api/v4/user": x509: certificate signed by unknown authority**

terraform {
  required_providers {
    gitlab = {
      source  = "gitlabhq/gitlab"
      version = "3.7.0"
    }
  }
}

provider "gitlab" {
  token    = var.token
  base_url = var.base_url
}

#token    = "******"
#base_url = "https://admin-repo.[ORG DOMAIN].com"
 

Я понимаю, что это проблема с отсутствием сертификата, так как не могу получить доступ к URL-адресу с помощью браузера, так как он дает NET::ERR_CERT_AUTHORITY_INVALID

Мой вопрос в том, как получить этот сертификат и настроить terraform для его использования для аутентификации?

Ответ №1:

Я полагаю, ваша проблема в том, что у вас есть самозаверяющий сертификат вместо сертификата от признанного центра сертификации.

Если вы не хотите тратить деньги на свой сертификат, возможно, самым простым способом было бы приобрести его у Let’s Encrypt using certbot . После этого вы можете предоставить этот сертификат Terraform без каких-либо проблем.

Инструкции для certbot этого прекрасно объясняются в их собственной сети в зависимости от вашей машины и развернутого приложения:

https://certbot.eff.org/instructions

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

1. Но как я могу поручить terraform использовать конкретный сертификат?

2. Terraform не нуждается в определенном сертификате. Let’s Encrypt уже является доверенным центром сертификации, поэтому, как только у вас появится сертификат, выданный ими, он распознает сертификат как выданный действительным эмитентом и не будет жаловаться. Было бы по-другому, если бы вы хотели использовать самозаверяющий сертификат. Проверьте здесь наличие самозаверяющих сертификатов: support.hashicorp.com/hc/en-us/articles/…