Docker Traefik配置示例混合Let';s加密和购买的证书
有了Traefik,我想只对一些新的特定前端主机规则使用Let's Encrypt,因为我已经对一些现有的前端主机规则使用了购买的证书。下面是我现有的工作示例traefik.toml,没有Let's Encrypt[acme]配置:Docker Traefik配置示例混合Let';s加密和购买的证书,docker,lets-encrypt,traefik,Docker,Lets Encrypt,Traefik,有了Traefik,我想只对一些新的特定前端主机规则使用Let's Encrypt,因为我已经对一些现有的前端主机规则使用了购买的证书。下面是我现有的工作示例traefik.toml,没有Let's Encrypt[acme]配置: defaultEntryPoints = ["http", "https"] [entryPoints] [entryPoints.http] address = ":80" [entryPoints.https] address = ":443"
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/certs/myhost.tld.crt"
keyFile = "/etc/traefik/certs/myhost.tld.key"
从我读到的内容来看,OnHostRule=true适用于所有主机规则
是否有一个示例Traefik配置显示了如何为特定主机而不是使用已购买证书的主机使用Let's Encrypt?您可以使用HTTPS和SNI(服务器名称指示)将特定SSL证书分配给特定域或子域 您可以从下面的官方文档链接中找到HTTPS+SNI配置示例 编辑1: 是否有一个示例Traefik配置来说明如何为特定主机而不是使用已购买证书的主机使用Let's Encrypt 你可以在官方文件中尝试这个例子。它说它将只为提供的证书无法检查的域生成让我们加密证书 您还可以参考了解ACME let's encrypt配置中每个配置项的说明
希望这有帮助。说你的目录和文件结构如下
traefik
|-ssl
|-ca.key
|-ca_chain.crt
|-traefik.toml
|-acme.json
更新您的traefik.toml
#traefik.toml
debug = true
defaultEntryPoints = ["http", "https"]
# Force HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/ssl/ca_chain.crt"
keyFile = "/etc/traefik/ssl/ca.key"
# Let's encrypt configuration
[acme]
email = "email@domain.com" #any email id will work
storage="/etc/traefik/acme.json"
entryPoint = "https"
acmeLogging=true
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
创建acme.json文件
touch ./traefik/acme.json
chmod 600 .traefik/acme.json
使用以下命令创建容器:
docker run --network=traefik-network -p 80:80 -p 443:443 -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/traefik:/etc/traefik --name=traefik traefik:latest --api --docker
我已经在为我购买的证书使用HTTPS和SNI,如我的示例所示。我的问题是如何配置[acme]部分以使用Let's Encrypt for other host.tld'sCan您可以尝试官方文档中的示例吗?它说它将生成让我们只加密那些不能被提供的证书检查的域的证书。好的,这看起来很有希望。在尝试之前,我需要了解此caServer路径的用途以及在我的服务器上需要执行的操作(如果有):caServer=“”,根据中的示例,
caServer
似乎是要使用的证书颁发机构服务器。我建议你留下评论,这将使traefik使用默认的让我们加密ca服务器,这是生产ca服务器。欢迎@Jim Frenette。我会用我在评论中提供的链接更新答案,这样它会更有意义,并且正确地回答问题。