ajout d'exemple pour le tls avec LE
This commit is contained in:
parent
5f43e8b385
commit
bdaad63786
|
@ -56,9 +56,14 @@ entryPoints:
|
|||
websecure:
|
||||
address: ":443"
|
||||
providers:
|
||||
docker: {}
|
||||
docker:
|
||||
endpoint: unix:///var/run/docker.sock
|
||||
watch: true
|
||||
file:
|
||||
directory: /etc/traefik/dynamic-configuration
|
||||
watch: true
|
||||
log:
|
||||
filePath: "/path/to/traefik.log"
|
||||
filePath: "/var/log/traefik.log"
|
||||
~~~
|
||||
|
||||
### Configuration dynamique
|
||||
|
@ -71,15 +76,15 @@ Liste des providers : https://doc.traefik.io/traefik/providers/overview/
|
|||
|
||||
> Remarque : le provider File permet de passer directement de la configuration via un fichier ou un dossier contenant des fichiers, https://doc.traefik.io/traefik/providers/file/#configuration-examples
|
||||
|
||||
On va configurer...
|
||||
**Attention** : Il faut configurer les providers dans la configuration statique (voir [Configuration statique](#configuration-statique) )
|
||||
|
||||
* des [routers](https://doc.traefik.io/traefik/routing/routers/#configuration-example) qui permette de connecter les requêtes aux services
|
||||
* des [Services](https://doc.traefik.io/traefik/routing/services/#services) qui permettent de joindre les services...
|
||||
* Des [Routers](https://doc.traefik.io/traefik/routing/routers/#configuration-example) qui permette de connecter les requêtes aux services
|
||||
* Des [Services](https://doc.traefik.io/traefik/routing/services/#services) qui permettent de joindre les services...
|
||||
|
||||
Par exemple :
|
||||
Par exemple dans un provider de type file :
|
||||
|
||||
~~~{.yaml}
|
||||
# Configuration dynamique
|
||||
# Configuration dynamique
|
||||
http:
|
||||
routers:
|
||||
Router-1:
|
||||
|
@ -96,7 +101,28 @@ http:
|
|||
|
||||
Dans le cas des providers comme docker et kubernetes, Treafik connaitra déjà les services, on aura seulement à configurer des routers directement dans la définitions des service dans swarm ou kubernetes...
|
||||
|
||||
TODO à venir examples !!
|
||||
Par exemple dans une stack docker compose :
|
||||
|
||||
~~~{.yaml}
|
||||
services:
|
||||
nextcloud:
|
||||
image: nextcloud
|
||||
labels:
|
||||
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.example.com`)"
|
||||
- "traefik.http.routers.nextcloud.tls.certResolver=letsencrypt"
|
||||
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
|
||||
~~~
|
||||
|
||||
Il faut spécifier le port du conteneur.
|
||||
|
||||
> Pour un service swarm, labels se trouve dans `deploy:` :
|
||||
|
||||
~~~{.yaml}
|
||||
services:
|
||||
nextcloud:
|
||||
deploy:
|
||||
labels:
|
||||
~~~
|
||||
|
||||
## Configuration avancée
|
||||
|
||||
|
@ -141,33 +167,46 @@ Documentation : <https://doc.traefik.io/traefik/routing/routers/#tls>
|
|||
dès le moment ou le router contient la section `tls:`, Traefik suppose que celui-ci est uniquement utilisé pour des requetes HTTPS uniquement.
|
||||
|
||||
~~~{.yaml}
|
||||
## Configuration dynamique
|
||||
## Configuration dynamique dans un fichier ( file provider )
|
||||
http:
|
||||
routers:
|
||||
my-https-router:
|
||||
rule: "Host(`foo-domain`) && Path(`/foo-path/`)"
|
||||
rule: "Host(`example.com`)"
|
||||
service: service-id
|
||||
# will terminate the TLS request
|
||||
tls: {} #TODO ref au fichiers
|
||||
# Configure le tls, tls: {} active le tls avec un cert autosigné généré par traefik
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
domains:
|
||||
- main: "example.com"
|
||||
sans:
|
||||
- "www.example.com"
|
||||
~~~
|
||||
|
||||
> Remarque: Si on veut aussi repondre en HTTP, il faut configurer un autre router
|
||||
|
||||
Traefik peut s'occuper de la gestion des certificats TLS, il faut definir un "certResolver":
|
||||
Traefik peut s'occuper de la gestion des certificats TLS, il faut definir un "certResolver", par exemple pour letsencrypt :
|
||||
|
||||
~~~{.yaml}
|
||||
# Configuration Statique
|
||||
certificatesResolvers:
|
||||
myresolver:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: your-email@example.com
|
||||
email: batman@example.com
|
||||
storage: acme.json
|
||||
caServer = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
httpChallenge:
|
||||
# used during the challenge
|
||||
# entrypoint utilisé, doit etre sur le port 80 !
|
||||
entryPoint: web
|
||||
letsencrypt-staging:
|
||||
acme:
|
||||
email: batman@example.com
|
||||
storage: acme.json
|
||||
caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
~~~
|
||||
|
||||
> Remarque : fonctionne seulement pour une "mono-instance". Pour de la gérer les certificats sur un cluster HA, il faut utiliser la version entreprise ou bien utiliser Cert manager(documentation à venir).
|
||||
> Remarque : fonctionne seulement pour une instance seule. Pour de la gérer les certificats sur un cluster HA, il faut utiliser la version entreprise ou bien utiliser laisser la gestion des certificats à un autre outils comme Cert manager( sur Kubernetes ) et donner directement le certificat à .
|
||||
|
||||
### Redirection vers HTTPS
|
||||
|
||||
|
|
Loading…
Reference in a new issue