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

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

¡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

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:

¡Y listo! 👏

Recursos y enlaces útiles

Etiquetas

  • docker

  • traefik

  • ssl

  • mac

Este artículo fue publicado el

Comentarios

Cargando...

Autogenerar un certificado y configurar Traefik para usar SSL en local 🔐 | DEMILY Clément