<a id="wildcard-tls-certificate"></a>

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

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

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

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

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

## Пример

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

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

```yaml
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`:

```yaml
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.
