我试图将Traefik设置为执行SSL客户端证书,就像我以前使用Apache所做的一样。但是我似乎无法使其正常工作。我也在使用Docker,这是命令参数
command:
- --defaultEntryPoints=http,https
- --insecureSkipVerify
- "--entryPoints=Name:http Address::80 Compress:true Redirect.entryPoint:https"
# This one works with no authentication
- "--entryPoints=Name:https Address::443 Compress:true TLS"
# These don't seem to do anything
- "--entryPoints=Name:https Address::443 Compress:true TLS CA.Optional:false CA:/run/secrets/CA"
- --ping
- --docker
- --docker.endpoint=tcp://daemon:2375
- --docker.exposedByDefault=false
- --docker.swarmMode
- --docker.watch
- --acme
- --acme.email=REDACTED@trajano.net
- --acme.onhostrule
- --acme.entrypoint=https
- --acme.httpchallenge
- --acme.httpchallenge.entrypoint=http
- --zookeeper.endpoint=zookeeper:2181
- --zookeeper.prefix=traefik
- --acme.storage=traefik/acme/acme.json
答案 0 :(得分:0)
实际上,毕竟是CA.Optional
和CA
。我使用的是Firefox,它会自动选择证书,而当我使用Chrome时,它是在使用缓存的内容。因此,当我清除浏览器缓存后,一切开始起作用。
请注意,此方法仅验证客户端证书已由CA签名,而不执行任何额外的检查,例如所使用的主题是什么。据我所知,这是Traefik 1.7的局限性。