【问题标题】:Traefik Docker SSL Configuration With Lets EncryptTraefik Docker SSL 配置与 Lets Encrypt
【发布时间】:2020-11-24 21:34:11
【问题描述】:

大家好,我正在尝试在我的 docker-compose.yml 文件中为我的后端服务启用 SSL。我所有的 Traefik 配置都在我的 docker-compose.yml 文件中完成,所以我可能会遗漏一行。在此配置上运行 docker-compose 可以在没有 SSL 的情况下正常显示站点,但在使用 https 时它不起作用。我已经检查了 certResolvers 的 Traefik 文档,但我不确定我缺少什么,谢谢。

version: "3"
networks:
    NanoWall-Net:
services:
    api:
        build: 
            context: .
            dockerfile: Dockerfile
        labels:
            - "traefik.docker.network=NanoWall-Net"
            - "traefik.enable=true"
            - "traefik.port=5000"
            - "traefik.http.routers.http-catchall.rule=Host(`nanowalldocs.com`)"
            - "traefik.http.routers.http-catchall.tls=true"
            - "traefik.http.routers.http-catchall.tls.certresolver=le"
            - "traefik.http.routers.http-catchall.tls.domains[0].sans=nanowalldocs.com"
            - "traefik.http.routers.http-catchall.entrypoints=web"
        ports:
            - "5000:5000"
        networks:
            - NanoWall-Net


reverse-proxy:
    image: traefik:v2.0
    # Enables the web UI and tells Traefik to listen to docker
    command:
        - "--entryPoints.web.address=:80"
        - "--entryPoints.websecure.address=:443"
        - "--entryPoints.websecure.http.tls.certResolver: le"
        - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
        - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
        - "--api.insecure=true"
        - "--api.debug=true"
        - "--api=true"
        - "--api.dashboard=true"
        - "--providers.docker=true"
        - "--providers.docker.endpoint=unix:///var/run/docker.sock"
        - "--providers.docker.exposedbydefault=false"
        - "--accesslog=true"
        - "--accesslog.filepath=/var/log/traefik-access.log"
        - "--accesslog.bufferingsize=1000"
        - "--log.filePath=/var/log/traefik.log"
        - "--certificatesResolvers.le.acme.email=jamar.phillip99@gmail.com"
        - "--certificatesResolvers.le.acme.storage=acme.json"
        - "--certificatesResolvers.le.acme.httpChallenge=true"
        - "--certificatesResolvers.le.acme.httpChallenge.entryPoint=web"

    ports:
        # The HTTP port
        - "80:80"
        - "443:443"
        # The Web UI (enabled by --api.insecure=true)
        - "8080:8080"
    networks:
        - NanoWall-Net
    volumes:
        - /acme.json/etc/traefik/acme.json
         # So that Traefik can listen to the Docker events
        - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: always

【问题讨论】:

    标签: docker docker-compose docker-swarm lets-encrypt traefik


    【解决方案1】:

    这可能不是唯一的问题,但您的 traefik 卷部分缺少一个冒号。你有:

    - /acme.json/etc/traefik/acme.json
    

    我认为应该是(假设您的主机位置确实是 /acme.json 而不是 ./acme.json 或其他目录):

    - /acme.json:/etc/traefik/acme.json
    

    也就是说,我也遇到了一个问题,即 traefik 总是希望它在 /acme.json 中,所以我只是把它放在那里而不是 /etc/traefik/acme.json 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2017-04-28
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多