Рейтинг:1

SmallStep step-ca и Traefik - не удалось подключиться к цели проверки

флаг hm

Я пытаюсь настроить службу типа Let's Encrypt в частной сети с помощью Step-ca и traefik Smallstep. И я застрял, потому что step-ca не может проверить запрос сертификата от traefik..

Вот что я сделал до сих пор.

Я запустил службу step-ca в док-контейнере, как описано в эта документация на сервере с IP "172.16.4.5". я тоже следил эта документация, чтобы добавить точку входа acme.

На другом сервере «172.16.4.4» я запустил конфигурацию для создания докеров с помощью Traefik 2.4 и службы «whoami» (как здесь официальный пример).

Все имена внутренних доменов обслуживаются частным DNS-сервером. И каждый сервер разрешил доменное имя без проблем.

Сервер и контейнер step-ca могут подключаться к серверу 172.16.4.4 через порты 80 и 443. Сервер 172.16.4.4 и контейнер traefik могут подключаться к 172.16.4.5. Я установил в контейнер traefik корневой сертификат, сделанный с помощью step-ca во время его инициализации.

Я настроил traefik для использования TSL Challenge. Traefik инициализирует вызов, и я не знаю, почему step-ca вызывает ошибку {"type":"urn:ietf:params:acme:error:connection","detail":"Сервер не удалось подключиться к цели проверки"}}

Ниже полная ошибка, вызванная step-ca :

INFO[0126] продолжительность = 63,427116 мс продолжительность-ns = 63427116 fields.time="2021-07-13T09:55:33Z" метод = имя POST = ca nonce = путь XX =/протокол acme/company.int/authz/XX =HTTP/1.1 referer=удаленный-адрес=172.16.4.4 request-id=xx response="{\"identifier\":{\"type\":\"dns\",\"value\":\"whoami .company.int\"},\"статус\":\"ожидание\",\"проблемы\":[{\"тип\":\"dns-01\",\"статус\":\" в ожидании\",\"токен\":\"XX\",\"url\":\"https://acme.company.int:9000/acme/company.int/challenge/XX/XX\"} ,{\"тип\":\"http-01\",\"статус\":\"ожидание\",\"токен\":\"XX\",\"url\":\"https: //acme.company.int:9000/acme/company.int/challenge/XX/XX\"},{\"type\":\"tls-alpn-01\",\"status\":\" в ожидании\",\"токен\":\"XX\",\"url\":\"https://acme.company.int:9000/acme/company.int/challenge/XX/XX\", \"ошибка\":{\"тип\":\"urn:ietf:params:acme:error:connection\",\"detail\":\"Серверу не удалось выполнить проверку\"}}],\ "подстановочный знак\":false,\"expires\":\"2021-07-14T09:54:24Z\"}" size=872 status=200 user-agent="containous-traefik/2.4.8 xenolf-acme/ 4 .3.1 (выпуск; линукс; amd64)" идентификатор пользователя =

Здесь Traefik config.toml

[апи]
  небезопасно = верно
  приборная панель = правда
  отладка = правда

[сертификаты Resolvers]
  [сертификатыResolvers.myresolver]
    [сертификатыResolvers.myresolver.acme]
      caServer = "https://acme.compagny.int:9000/acme/company.int/directory"
      электронная почта = "чувак@mailthings.dn"
      хранилище = "/etc/traefik/acme/acme.json"
      [сертификатыResolvers.myresolver.acme.tlsChallenge]

[провайдеры]
  [провайдеры.докер]
    смотреть = правда
    сеть = "traefik_webgateway"
    режим роя = ложь
    выставлено по умолчанию = ложь
  [файл провайдеров]
    имя файла = "traefik.toml"
    каталог = "/etc/traefik"

Вот файл /home/step/config/ca.json для службы step-ca:

{
    "root": "/home/step/certs/root_ca.crt",
    "федеративные корни": [],
    "crt": "/home/step/certs/intermediate_ca.crt",
    "key": "/home/step/secrets/intermediate_ca_key",
    "адрес": ":9000",
    "небезопасныйАдрес": "",
    "ДНСИмена": [
        "acme.company.int"
    ],
    "орган власти": {
        "поставщики": [
            {
                "тип": "JWK",
                // [...]
                },
                "зашифрованный ключ": "ххх"
            },
            {
                "тип": "ACME",
                "имя": "company.int",
                "forceCN": правда,
                "претензии": {
                    "maxTLSCertDuration": "2160h0m0s",
                    "defaultTLSCertDuration": "2160h0m0s"
                }
            },
            {
                "тип": "ACME",
                "имя": "акме"
            }
        ],
        "шаблон": {},
        "задняя дата": "1м0с"
    },
    "TLS": {
        «шифролюксы»: [
            "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
        ],
        "минВерсия": 1.2,
        "maxVersion": 1.3,
        «пересмотр»: ложь
    }
}
Рейтинг:0
флаг hm

Просто проблема с параметром.

Раньше я запускал службу step-ca с параметром --resolver с IP-адресом DNS-сервера. Но вам нужно добавить порт DNS-сервера, иначе setp-ca не сможет найти доменное имя.

Итак, ответ на мою проблему заключается в том, чтобы добавить :53 в конце IP, вот так

шаг-ca --resolver="10.14.2.2:53"
Halex avatar
флаг ng
Насколько я понимаю, вы запускаете step-ca в контейнере Docker, так как же вы запускаете step-ca с пользовательским параметром? Вы изменили исходное изображение? Я был бы признателен, если бы вы немного уточнили объяснение решения, у меня такая же проблема, и, возможно, кто-то еще наткнется на нее позже, и это, безусловно, будет полезно.

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

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