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