Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Устранение неполадок механизма секретов PKI и ACME

В данной статье представлены решения распространенных проблем, связанных с интеграцией клиента ACME с сервером ACME StarVault механизма секретов PKI.

1. Ошибка: ACME требует установки конфигурации поля 'path' локального кластера

Если ACME работает на одних узлах кластера StarVault, но не работает на других, это, скорее всего, означает, что адрес кластера не установлен.

1.1. Проявления ошибки

Когда клиент StarVault читает конфигурацию ACME (/config/acme) на узле Performance Secondary или когда клиент ACME пытается подключиться к каталогу на этом узле, появится сообщение об ошибке:

ACME feature requires local cluster 'path' field configuration to be set

1.2. Причина

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

1.3. Решение

Для каждого кластера Performance Replication прочитайте значение /config/cluster и убедитесь, что поле path установлено. Если оно отсутствует, обновите URL-адрес, чтобы он указывал на путь этого монтирования на адресе с поддержкой TLS для этого кластера PR; этот домен может быть адресом балансировки нагрузки или DNS round robin. Например:

$ starvault write pki/config/cluster path=https://cluster-b.starvault.example.com/v1/pki

После этого перечитайте конфигурацию ACME и убедитесь, что больше не отображаются предупреждения:

$ starvault read pki/config/acme

2. Ошибка: Невозможно зарегистрировать учетную запись на сервере ACME

2.1. Проявления ошибки

При регистрации новой учетной записи без внешней привязки учетной записи (EAB) сервер StarVault отклоняет запрос с ответом типа:

Unable to register an account with ACME server

с дополнительной информацией в журналах отладки (в случае certbot):

Server requires external account binding.

или, если клиент отправил некорректный запрос серверу, ошибка типа:

The request must include a value for the 'externalAccountBinding' field

В любом случае необходимо создать новую учетную запись с помощью токена EAB, созданного StarVault.

2.2. Причина

Если сервер был обновлен для требования eab_policy=always-required в конфигурации ACME, регистрация новых учетных записей (и повторное использование существующих) будет неудачной.

2.3. Решение

Используя токен StarVault, получите новую привязку внешней учетной записи для нужного каталога:

$ starvault write -f pki/roles/my-role-name/acme/new-eab
...
directory roles/my-role-name/acme/directory
id        bc8088d9-3816-5177-ae8e-d8393265f7dd
key       MHcCAQE... additional data elided ...
...

Затем передайте этот новый токен EAB в клиент ACME. Например, с помощью certbot:

$ certbot [... additional parameters ...] \
    --server https://cluster-b.starvault.example.com/v1/pki/roles/my-role-name/acme/directory \
    --eab-kid bc8088d9-3816-5177-ae8e-d8393265f7dd \
    --eab-hmac-key MHcCAQE... additional data elided ...

Убедитесь, что каталог ACME, переданный клиенту ACME, совпадает с каталогом, полученным из хранилища.

3. Ошибка: Не удалось проверить eab

3.1. Проявления ошибки

При инициализации новой учетной записи на этом сервере StarVault клиент ACME может выдать ошибку с сообщением типа:

The client lacks sufficient authorization :: failed to verify eab

Ошибка возникает, если EAB-токен получен из каталога, отличающегося от того, с которым работает клиент.

3.2. Причина

Если токен учетной записи EAB используется с неподходящим каталогом, сервер ACME отклонит запрос с ошибкой о недостаточных разрешениях.

3.3. Решение

Убедитесь, что запрашиваемый токен EAB соответствует каталогу. Для заданной директории по адресу /some/path/acme/directory возьмите токены EAB из /some/path/acme/new-eab. Остальные шаги по решению проблемы такие же, как и при отладке сбоев регистрации учетной записи.

4. Ошибка: Не удалось выполнить проверку ACME для {challenge_id}

4.1. Проявления ошибки

При просмотре журналов сервера StarVault или попытке получить сертификат с помощью клиента ACME возникает сообщение об ошибке вида:

ACME validation failed for a465a798-4400-6c17-6735-e1b38c23de38-tls-alpn-01: ...

Указывает на то, что сервер не смог подтвердить этот вызов, принятый клиентом.

4.2. Причина

StarVault не может проверить идентичность сервера через запрошенный клиентом тип вызова (dns-01, http-01 или tls-alpn-01). StarVault не выпустит сертификат, запрошенный клиентом.

4.3. Решение

Убедитесь, что DNS корректно настроен с точки зрения сервера StarVault, включая настройку любого пользовательского DNS-резольвера.

Убедитесь, что все брандмауэры настроены так, чтобы StarVault мог общаться с соответствующими системами (DNS-сервер в случае dns-01, порт 80 на целевой машине для http-01 или порт 443 на целевой машине для вызовов tls-alpn-01).

5. Ошибка: Клиент не может авторизоваться: учетная запись имеет статус: отозвана

5.1. Проявления ошибки

При попытке обновить сертификат клиент ACME сообщает об ошибке:

The client lacks sufficient authorization: account in status: revoked

5.2. Причина

Если была запущена ручная очистка или включена автоматическая очистка с tidy_acme=true, StarVault будет периодически удалять устаревшие учетные записи ACME.

Соединения от клиентов, использующих удаленные учетные записи, будут отклонены.

5.3. Решение

Обратитесь к документации клиента ACME для удаления кэшированной локальной конфигурации и настройте новую учетную запись, указав все необходимые EAB.

6. Справочная

Пожалуйста, предоставьте следующую информацию при обращении в службу поддержки Orion soft, чтобы помочь нам в расследовании и воспроизведении:

  • Имя и версия клиента ACME

  • Журналы клиента ACME и/или выходные данные

  • Журналы сервера StarVault уровня DEBUG.

7. API

Механизм секретов PKI имеет полноценный HTTP API. Более подробную информацию можно найти в разделе API движка PKI secrets.