web-dev-qa-db-fra.com

Erreur de serveur interne avec le backend Traefik HTTPS sur le port 443

Avec docker, j'essaie de configurer un serveur Traefik à l'aide du port HTTPS 443 afin que la communication entre le conteneur Traefik et le conteneur d'applications (Apache 2.4) soit cryptée.

J'ai un Internal Server Error si j'active le traefik.protocol=https et le traefik.port=443 sur mon conteneur Docker. Ce problème a été documenté ici: https://github.com/containous/traefik/issues/2770#issuecomment-374926137

La même configuration fonctionne parfaitement avec jwidler/nginx-proxy (proxy inverse disponible sur le concentrateur de docker), par exemple. Les certificats sur le conteneur (Apache 2.4 fonctionnant à l'intérieur) sont réellement signés (je les ai installés sur traefik et sur Apache de mon conteneur). Si je demande directement mon conteneur Apache avec https: // ... tous les navigateurs disent que le certificat est valide (vert). Donc, les certificats dans le conteneur sont ok.

La question est simple: Utiliser InsecureSkipVerify = true n’est pas sûr . Existe-t-il une solution pour que la production puisse faire fonctionner un conteneur avec l’étiquette traefik.protocol=https et traefik.port=443, en utilisant un certificat délivré par une autorité bien connue ( dans mon cas, Gandi ou Comodo).

Merci.

5
Yivan

Je suppose que vous devrez peut-être ajouter 

InsecureSkipVerify = true

dans la section principale/globale

Veuillez vous référer à https://docs.traefik.io/configuration/commons/ , qui dit:

InsecureSkipVerify : If set to true invalid SSL certificates are accepted for backends.
Note: This disables detection of man-in-the-middle attacks so should only be used on secure backend networks.
6
chxzqw

J'ai seulement réussi à exposer le tableau de bord Kubernetes avec le paramètre InsecureSkipVerify = true. Voici comment je l'ai ajouté au fichier de déploiement de traefik (dernière ligne):

spec:
  serviceAccountName: traefik-ingress-controller
  terminationGracePeriodSeconds: 60
  containers:
  - image: traefik
    name: traefik-ingress-lb
    ports:
    - name: https
      containerPort: 443
    args:
    - --api
    - --kubernetes
    - --logLevel=INFO
    - --defaultentrypoints=https
    - --entrypoints=Name:https Address::443 TLS
    - --insecureSkipVerify=true
0
Newalp