Autogenerar un certificado y configurar Traefik para usar SSL en local 🔐

Sommaire
¡Hola a todos! 👋
Después de ver en una entrega anterior cómo usar Traefik con Docker para tener nombres de dominio personalizados, ahora veremos cómo autogenerar un certificado y luego configurar Traefik para usarlo. Una vez hecho esto podremos acceder a nuestras aplicaciones vía https.
Creación de los archivos de configuración
Para generar fácilmente los archivos necesarios, necesitará crear estos dos archivos de configuración.
root.cnf
[ req ]
prompt = no
string_mask = default
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
countryName = fr
organizationName = MyLocalDev
commonName = MyLocalDev Root CA
[ x509_ext ]
basicConstraints=critical,CA:true,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
server.cnf
[ req ]
prompt = no
string_mask = default
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
countryName = fr
organizationName = MyLocalDev
commonName = Certificat Applications MyLocalDev
[ x509_ext ]
keyUsage=critical,digitalSignature,keyAgreement
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = traefik.test
Algunas indicaciones complementarias sobre organizationName y commonName: son la información que aparecerá en los detalles del certificado (cuando lo inspeccione con su navegador).
La sección alt_names permite definir la lista de DNS que serán validados por el certificado. Para el ejemplo, utilizaremos el DNS "traefik.test". Aquí es donde deberá añadir los nombres de dominio que quiera agregar.
Generar el certificado SSL
Una vez creados nuestros archivos de configuración, vamos a usar los siguientes comandos:
openssl req -x509 -new -keyout root.key -out root.cer -config root.cnf
openssl req -nodes -new -keyout server.key -out server.csr -config server.cnf
openssl x509 -days 825 -req -in server.csr -CA root.cer -CAkey root.key -set_serial 123 -out server.cer -extfile server.cnf -extensions x509_ext
a partir de aquí, voy a describir el método a seguir en mac
Una vez superado este paso:
open .
Deberá hacer doble clic en el archivo "server.cer". Aparecerá una ventana del sistema y entonces deberá hacer doble clic en la entrada "Certificat Applications MyLocalDev".
Una vez hecho esto, deberá hacer clic en la pequeña flecha "se fier" y cambiar el valor del selector por "Toujours approuver". Luego deberá introducir su contraseña del sistema para validar.
Aquí hay algunas pistas para realizar este paso en unix
- Agregar certificados raíz de confianza al servidor (GFI)
- Añadir un certificado autofirmado a la lista de confianza (Unix StackExchange)
Actualización del archivo docker-compose
traefik-ssl.toml
defaultEntryPoints = ["https", "http"]
[accessLog]
[traefikLog]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[entryPoints.https.tls.defaultCertificate]
certFile = "/certs/server.cer"
keyFile = "/certs/server.key"
[web]
address = ":8080"
[web.auth.basic]
users = ["admin:$apr1$o1HmXW0i$wWgVewL1kLu9gaqmMDh6u/"]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "test"
watch = true
exposedbydefault = true
docker-compose.traefik.yml
version: "3"
services:
proxy:
image: traefik
networks:
- traefik
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik-ssl.toml:/traefik.toml"
- "./certs/:/certs/"
restart: unless-stopped
labels:
- "traefik.frontend.rule=Host:traefik.test"
- "traefik.frontend.entryPoints=http,https"
- "traefik.backend=traefik"
- "traefik.port=8080"
networks:
traefik:
external:
name: traefik
Algunas precisiones:
- parto del supuesto de que los archivos server.cer y server.key se encuentran en una carpeta "certs", en la raíz del archivo docker-compose.
- de la misma manera, el archivo traefik-ssl.toml debe estar al mismo nivel que el archivo docker-compose.
Iniciar Traefik vía docker-compose
Solo le queda ejecutar este último comando:
docker-compose -f docker-compose.traefik.yml up
Ahora puede consultar las siguientes direcciones:
- Traefik ( https://traefik.test/ )
¡Y listo! 👏
Recursos y enlaces útiles
Comentarios
Cargando...