Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
  • Интернет-магазины
  • Хранение и восстановление данных
  • Тестовая среда
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Настройка синхронизации часов с помощью NTP
    • Работа с группой ВМ с автомасштабированием
    • Масштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди Message Queue
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Cloud Logging
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360 в Cloud DNS
    • Интеграция Cloud DNS и корпоративного сервиса DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
  • Продукты Microsoft в Yandex Cloud
  • Сетевая инфраструктура
  • Визуализация и анализ данных
  • Интернет вещей
  • Бессерверные технологии
  1. Управление инфраструктурой
  2. Создание веб-хука резолвера ACME для ответов на DNS01-проверки

Создание веб-хука резолвера ACME для ответов на DNS01-проверки

Статья создана
Yandex Cloud
  • Перед началом работы
  • Установите веб-хук
  • Подготовьте конфигурационные файлы
  • Запустите менеджер сертификатов с веб-хуком
  • Удалите созданные ресурсы

Чтобы автоматически проходить проверки прав на домен с использованием утилиты cert-manager, добавьте веб-хук с резолвером DNS01 в конфигурацию утилиты.

Ниже приведен пример создания объекта ClusterIssuer с веб-хуком резолвера DNS01 для домена, зарегистрированного в Yandex Cloud DNS.

Чтобы запустить веб-хук в кластере Managed Service for Kubernetes:

  1. Установите веб-хук.
  2. Подготовьте конфигурационные файлы.
  3. Запустите менеджер сертификатов с веб-хуком.

Перед началом работы

  1. Подготовьте кластер Managed Service for Kubernetes к работе.
  2. Установите менеджер сертификатов последней версии.
  3. Установите менеджер пакетов Helm.
  4. Настройте CLI для работы от имени сервисного аккаунта.

Установите веб-хук

  1. Клонируйте репозиторий веб-хука:

    git clone https://github.com/yandex-cloud/cert-manager-webhook-yandex.git
    
  2. Установите веб-хук с помощью Helm:

    helm install -n cert-manager yandex-webhook ./deploy/cert-manager-webhook-yandex
    

Подготовьте конфигурационные файлы

  1. Создайте авторизованный ключ и сохраните его в файл iamkey.json:

    yc iam key create iamkey \
        --service-account-id=<your service account ID> \
        --format=json \
        --output=iamkey.json
    

    Важно

    Сервисный аккаунт должен иметь роль не ниже editor.

  2. Создайте секрет с ключом сервисного аккаунта:

    kubectl create secret generic cert-manager-secret --from-file=iamkey.json -n cert-manager
    
  3. Создайте файл cluster-issuer.yml с манифестом объекта ClusterIssuer:

    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
     name: clusterissuer
     namespace: default
    spec:
     acme:
      # You must replace this email address with your own.
      # Let's Encrypt will use this to contact you about expiring
      # certificates, and issues related to your account.
      email: your@email.com
      server: https://acme-staging-v02.api.letsencrypt.org/directory
      privateKeySecretRef:
       # Secret resource that will be used to store the account's private key.
       name: secret-ref
      solvers:
       - dns01:
          webhook:
            config:
              # The ID of the folder where dns-zone located in
              folder: <your folder ID>
              # This is the secret used to access the service account
              serviceAccountSecretRef:
                name: cert-manager-secret
                key: iamkey.json
            groupName: acme.cloud.yandex.com
            solverName: yandex-cloud-dns
    
  4. Создайте файл cluster-certificate.yml с манифестом объекта Certificate:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
     name: your-site-com
     namespace: default
    spec:
     secretName: example-com-secret
     issuerRef:
      # The issuer created previously
      name: clusterissuer
      kind: ClusterIssuer
     dnsNames:
       - your-site.com
    

Запустите менеджер сертификатов с веб-хуком

  1. Создайте объекты в кластере Kubernetes:

    kubectl apply -f cluster-issuer.yml && \
    kubectl apply -f cluster-certificate.yaml
    
  2. Убедитесь, что веб-хук запущен:

    kubectl get pods -n cert-manager –watch
    

    Проверьте, что среди записей присутствует веб-хук ACME для Yandex Cloud DNS:

    NAME                                                         READY   STATUS    RESTARTS   AGE
    ... 
    yandex-webhook-cert-manager-webhook-yandex-5578cfb98-tw4mq   1/1     Running   1          43h
    

Удалите созданные ресурсы

Если созданные ресурсы вам больше не нужны, удалите кластер Managed Service for Kubernetes.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Установите веб-хук
  • Подготовьте конфигурационные файлы
  • Запустите менеджер сертификатов с веб-хуком
  • Удалите созданные ресурсы