Traefik是否负责初始的“让我们加密”身份验证和续约?

时间:2019-01-23 11:10:42

标签: traefik

为了从Let's Encrypt获得网站域的SSL证书,我必须演示对域的控制。 Let's Encrypt CA将查看请求的域名并发出一组或多组挑战。

问题1 :当我在“加密”中有一个指向VPS的域名和一个电子邮件地址时,Traefik是否可以自动进行初始身份验证过程?

第二季度:保持http(80)端口打开是否足以让我们加密以进行初始验证?

第三季度:自动更新是否需要打开80端口?还是这也可以是443端口?从现在开始最好将所有流量重定向到https。这样-Traefik / LetsEncrypt可以使用打开的443端口自动续订吗?

2 个答案:

答案 0 :(得分:2)

答案(到目前为止):

问题1:是!电子邮件可以是您拥有的任何电子邮件地址。域名不必与您的域名相同。域名确实应该指向VPS。

问题2:是!第一次将80端口保持打开状态。安装证书后开始重定向。

问题3:是!:我找不到答案,因此我立即尝试了第一个答案中的建议。由于更改了其他设置,我重新启动了大约3次,并且Traefik日志中未显示任何错误。

现在让我们继续进行实际代码。在代码中,您可以找到3个答案。下一个文件是traefik.toml文件:

logLevel = "ERROR"
defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
    address = ":443"
    [entryPoints.https.tls]

[docker]
  domain = "xyz.com"

[api]

[acme]
  # Q1 - just use your email address
  email = "email@example.com"
  storage = "acme.json"
  onHostRule = true
  entryPoint = "https"
  # Q3 answer = this allows for the TLS challenge on port 443
  [acme.tlsChallenge]
  # Q2 answer = this provides the HTTP challenge on port 80
  #[acme.httpChallenge]
  #  entryPoint = "http"

docker-compose文件为:

version: '3'
services:
  traefik:
    image: traefik:v1.7
    container_name: traefik
    restart: always
    networks:
      - yourappnet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /your_path/traefik/traefik.toml:/traefik.toml
      - /your_path/traefik/acme.json:/acme.json
    ports:
      - "80:80"
      - "443:443"
    labels:
      - "traefik.docker.network=yourappnet"
      - "traefik.frontend.rule=Host:monitor.xyz.com"
      - "traefik.port=8080"

  yourapp:
    image: dockerhubuser/dockerimagename:latest
    ports:
      - 8080
    networks:
      - yourappnet
    labels:
      - "traefik.docker.network=yourappnet"
      - "traefik.frontend.rule=Host:xyz.com"

networks:
  yourappnet:
    driver: bridge

答案 1 :(得分:2)

第二季度和第三季度:

用于解决“让我们加密”挑战(创建或更新)的端口取决于您使用的挑战:

  • 对于HTTP挑战,您需要使用端口80
  • 对于TLS-ALPN挑战,您需要使用端口443
  • 对于DNS挑战,由于在DNS服务器上进行了验证过程,因此不需要端口。

创建或续订使用相同的端口(取决于挑战),因此,如果您希望Traefik自动续订证书,则需要将端口保持打开状态。