基于Traefik3.0和Let‘s Encrypt以及阿里dns的HTTPS方案(docker 部署)

基于Traefik3.0和Let’s Encrypt以及阿里dns的HTTPS方案(docker 部署)

前提

  • 申请Let’s Encrypt邮箱绑定域名,https://easy.zhetao.com/
  • 购买域名和服务器(备案),域名解析配置泛域名和主域名
  • 安装docker以及docker-compose

docker-compose

version: '3'

services:
  traefik:
    restart: unless-stopped
    # The latest Traefik Docker image
    image: traefik
    # Enables the web UI and tells Traefik to listen to Docker
    environment:
      - ALICLOUD_ACCESS_KEY=${ALICLOUD_ACCESS_KEY}
      - ALICLOUD_SECRET_KEY=${ALICLOUD_SECRET_KEY}
    command: 
      - --api.insecure=true
      - --providers.docker
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --certificatesresolvers.letsencrypt.acme.dnschallenge=true
      - --certificatesresolvers.letsencrypt.acme.email=${EMAIL}
      - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
      - --certificatesresolvers.letsencrypt.acme.dnsChallenge.provider=alidns
    ports:
      - "80:80"
      - "443:443"
      - "9080:8080"
    volumes:
      - ./letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik.entrypoints=http
      - traefik.http.routers.traefik.rule=Host(`traefik.${DOMAIN}`)
      - traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https
      - traefik.http.middlewares.sshheader.headers.customrequestheaders.X-Forward-Proto=https
      - traefik.http.middlewares.auth.basicauth.users=${TRAEFIK_USER}:${TRAEFIK_PASSWORD_HASH}
      - traefik.http.routers.traefik-secure.entrypoints=https
      - traefik.http.routers.traefik-secure.rule=Host(`traefik.${DOMAIN}`)
      - traefik.http.routers.traefik-secure.middlewares=auth
      - traefik.http.routers.traefik-secure.service=api@internal
      - traefik.http.routers.traefik-secure.tls=true
      - traefik.http.routers.traefik-secure.tls.certresolver=${CERT_RESOLVER}
      - traefik.http.routers.traefik-secure.tls.domains[0].main=${DOMAIN}
      - traefik.http.routers.traefik-secure.tls.domains[0].sans=*.${DOMAIN}
  whoami:
    restart: unless-stopped
    image: traefik/whoami
    labels:
      - traefik.enable=true     
      - traefik.http.routers.whoami.rule=Host(`whoami.${DOMAIN}`)   
      - traefik.http.routers.whoami.entrypoints=https      
      - traefik.http.routers.whoami.tls.certresolver=${CERT_RESOLVER}
      - traefik.docker.network=proxy
安装htpasswd

yum install httpd-tools

htpasswd -nb admin password

配置env
#vim .env
DOMAIN=****
EMAIL=a@xx.com
CERT_RESOLVER=****
TRAEFIK_USER=admin
## htpasswd -nb admin password 生成
TRAEFIK_PASSWORD_HASH=****
ALICLOUD_ACCESS_KEY=******
ALICLOUD_SECRET_KEY=****

阿里云配置子账户DNS

复制ACCESS_KEY和SECRET_KEY。

开放两个策略

  • AliyunDNSReadOnlyAccess
  • 自定义策略
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "alidns:*",
            "Resource": "acs:alidns:*:*:domain/xx.com"
        },
        {
            "Effect": "Allow",
            "Action": [
                "alidns:DescribeDomains",
                "alidns:DescribeDomainNs",
                "alidns:DescribeDomainGroups",
                "alidns:DescribeSiteMonitorIspInfos",
                "alidns:DescribeSiteMonitorIspCityInfos"
            ],
            "Resource": "acs:alidns:*:*:*"
        }
    ]
}

访问成功
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值