Сертификат по умолчанию на Nginx адрес - PullRequest
1 голос
/ 07 апреля 2020

Я хочу отключить SNI на входе nginx. Если используется вызов с использованием openssl, как показано ниже:

openssl s_client -showcerts -connect ***********.gr:443

Тогда я хочу, чтобы nginx -ingress использовал только настроенный мной сертификат, а не fake-k8s-cert.

Сертификат работает, если вы просматриваете веб-приложение, но мне также нужно установить сертификат по умолчанию.

Ниже приведен пример:

[root@production ~]# openssl s_client -showcerts -connect 3dsecureuat.torawallet.gr:443
CONNECTED(00000003)
depth=0 O = Acme Co, CN = Kubernetes Ingress Controller Fake Certificate
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 O = Acme Co, CN = Kubernetes Ingress Controller Fake Certificate
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/O=Acme Co/CN=Kubernetes Ingress Controller Fake Certificate
   i:/O=Acme Co/CN=Kubernetes Ingress Controller Fake Certificate
-----BEGIN CERTIFICATE-----

---
Server certificate
subject=/O=Acme Co/CN=Kubernetes Ingress Controller Fake Certificate
issuer=/O=Acme Co/CN=Kubernetes Ingress Controller Fake Certificate
---
Acceptable client certificate CA names
/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
...

Я также настроил вход для использования секрета на всех именах хостов без указания хоста: tls: - secretName: ****** wte-ingress

Ответы [ 3 ]

1 голос
/ 07 апреля 2020

Как уже упоминалось здесь

Когда определен вход без хоста, используется сервер по умолчанию (_ в nginx).

Вам необходимо предоставить -servername вашей команде openssl для проверки сертификата вашего домена, например:

openssl s_client -showcerts -connect ***********.gr:443 -servername *********.gr

0 голосов
/ 21 апреля 2020

Сертификат SSL по умолчанию * Флаг 1002 * решил проблему, как указано выше.

В документации Nginx вы можете прочитать:

Входной контроллер NXINX предоставляет флаг --default-ssl-certificate. Секрет, указанный в этом флаге, содержит сертификат по умолчанию, который будет использоваться при доступе к универсальному серверу. Если этот флаг не указан, NGINX будет использовать самозаверяющий сертификат.

Например, если у вас есть секретный код TLS в пространстве имен по умолчанию, добавьте --default-ssl-certificate = default / foo-tls в развертывании nginx -controller.

Сертификат по умолчанию также будет использоваться для входных tls: разделов, не имеющих параметра secretName.

0 голосов
/ 07 апреля 2020

Проблема в том, что клиентское приложение говорит, что не поддерживает SNI и не может отправить имя сервера в своем запросе. Поэтому нам нужно предоставить один и тот же сертификат с именем сервера или без него в запросе

...