Wildcard-сертификат#

Wildcard-сертификат упрощает настройку терминации TLS, если необходимо использовать один и тот же TLS-сертификат в нескольких ресурсах Ingress и VirtualServer в разных пространствах имен. Wildcard-сертификат позволяет централизованно управлять TLS-сертификатами для множества доменов без дублирования секрета в каждом ресурсе.

Обычно такой сертификат выдается для поддомена (например, *.example.com), а хосты ресурсов Ingress и VirtualServer включают этот поддомен (например foo.example.com, bar.example.com).

Важно

Предварительно необходимо запустить ANIC с аргументом командной строки -wildcard-tls-secret со значением TLS-секрета, содержащего wildcard-сертификат и ключ. ANIC поддерживает только один wildcard-секрет.

-wildcard-tls-secret=angie-ingress/wildcard-tls-secret

Пример#

В примерах ниже показана настройка терминации TLS для ресурса Ingress с хостом foo.example.com и ресурса VirtualServer с хостом bar.example.com.

Пример для Ingress из пространства имен foo:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: foo
  namespace: foo
spec:
  ingressClassName: angie
  tls:
  - hosts:
    - foo.example.com
  rules:
  - host: foo.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: foo-service
            port:
              number: 80

Пример для VirtualServer из пространства имен bar:

apiVersion: k8s.angie.software/v1
kind: VirtualServer
metadata:
  name: bar
  namespace: bar
spec:
  host: bar.example.com
  tls:
    secret: ""
  upstreams:
  - name: bar
    service: bar-service
    port: 80
  routes:
  - path: /
    action:
      pass: bar

В примерах выше конкретный TLS-секрет не указан:

  • в ресурсе Ingress отсутствует поле secret в блоке tls;

  • в ресурсе VirtualServer поле secret пустое ("").

В этом случае будет использоваться wildcard-секрет, указанный с помощью параметра -wildcard-tls-secret при запуске ANIC.