I have a domain name api.test-external.com hosted in cloud dns server. Now i want to have enable https like https://api.test-external.com: port for multiple services using same domain. Here is my docker-compose file where i wanted to enable https for both traefik dashboard and pgadmin4 with custom port.

However, https://api.test-external.com:7070 is working fine but could not be able to get working for https://api.test-external.com:5050. Its showing ERR_SSL_PROTOCOL_ERROR

I have multiple services exposed in other ports. Can anyone Please help on how can i have enabled https in port 5050 like https://api.test-external.com:5050 or others port like (7800,4000).

docker-compose

version: "3.7"

services:
  reverse-proxy:
    image: traefik:v2.10
    command:
      - "--log.level=DEBUG"  
      - "--providers.docker"
      - "--api=true"
      - "--providers.docker.exposedByDefault=false"
      - "--accesslog=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web-secure.address=:443"
      - "--entrypoints.pgadmin4.address=:5050"
      - "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "[email protected]"
      - "--certificatesresolvers.lets-resolver.acme.storage=/etc/traefik/acme/acme.json"
      - "--certificatesresolvers.lets-resolver.acme.dnschallenge=true"
      - "--certificatesresolvers.lets-resolver.acme.dnschallenge.provider=cloudflare"
      - "--certificatesresolvers.lets-resolver.acme.dnschallenge.delaybeforecheck=0"
    environment:
      - [email protected]
      - CF_DNS_API_TOKEN=token goes here
    ports:
      - "80:80"
      - "7070:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./letsencrypt/acme.json:/etc/traefik/acme/acme.json
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.reverse-proxy.entrypoints=web-secure"
      - "traefik.http.routers.reverse-proxy.rule=Host(`api.test-external.com`)"
      - "traefik.http.routers.reverse-proxy.tls=true"
      - "traefik.http.routers.reverse-proxy.tls.certresolver=lets-resolver"
      - "traefik.http.routers.reverse-proxy.service=api@internal"

    restart: always


  db:
    image: postgis/postgis:13-3.1-alpine
    env_file:
      .env
    volumes:
      - postgis:/var/lib/postgresql/data
    networks:
      - app-network
    ports:
      - '5432:5432'
    restart: always
    labels:
      - "traefik.enable=false"

  pgadmin4:
    image: dpage/pgadmin4
    container_name: pgadmin4
    ports:
        - '5050:80'
    environment:
        PGADMIN_DEFAULT_EMAIL: [email protected]
        PGADMIN_DEFAULT_PASSWORD: test
    links:
        - db
    networks:
      - app-network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pgadmin4.entrypoints=pgadmin4"
      - "traefik.http.routers.pgadmin4.rule=Host(`api.test-external.com`)"
      - "traefik.http.routers.pgadmin4.tls=true"
      - "traefik.http.routers.pgadmin4.tls.certresolver=lets-resolver"
      - "traefik.http.routers.pgadmin4.service=pgadmin4"
    restart: always

networks:
  app-network:
    driver: bridge

volumes:
  postgis:

Can anyone Please help on how can i have enabled https in port 5050 like https://api.test-external.com:5050 or others port like (7800,4000) using same domain.

https on same domain but different non default ssl port.

0

There are 0 best solutions below