Кубернетес nginx Ингресс ССЛ - PullRequest
0 голосов
/ 30 апреля 2020

Я использую незащищенный Kubernetes с nginx входом и metallb и некоторыми именами хостов, сопоставленными с внешним ip, предоставленным metallb.

Я создал развертывание nginx, выставил его через сервис и создал вход с именем хоста. Я создал с openssl самозаверяющий сертификат:

openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout tls.key -out tls.crt -subj "/CN=fake.example.com" -days 365  

Затем создал секрет в правильном пространстве имен:

kubectl -n demo create secret tls fake-self-secret --cert=tls.crt --key=tls.key

Затем создал вход:

apiVersion: v1
items:
- apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    annotations:
      kubernetes.io/ingress.class: nginx
      nginx.ingress.kubernetes.io/ssl-redirect: "false"
    name: demo-ingress
    namespace: demo
  spec:
    rules:
    - host: fake.example.com
      http:
        paths:
        - backend:
            serviceName: nginx
            servicePort: 80
          path: /
    tls:
    - hosts:
      - fake.example.com
      secretName: fake-self-secret

Http работает (из-за ложной аннотации ssl-redirect), https возвращает SSL_ERROR_RX_RECORD_TOO_LONG, в журнале входа контроллера nginx я вижу что-то вроде "\ x16 \ x03 \ x01 \ x00 \ xA8 \ x01 \ x00 \ x00 \ xA4 \ x03 \ x03 * \ x22 \ xA8 \ x8F \ x07q \ xAD \ x98 \ xC1! \

openssl s_client -connect fake.example.com:443 -servername fake.example.com -crlf
140027703674768:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:

Nginx версия ингресс-контроллера равна 0,30, при конфигурации по умолчанию ssl-протоколы включены в configmap: TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 Любая помощь / новые идеи приветствуются :)

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