Docker :: Traefik не обновляет сертификаты LetsEncrypt. Как исправить или обновлять вручную?
На Docker развернуто несколько сервисов: почта, файловое хранилище, чат и т.д. Все настроено и работало прекрасно пока не устарели сертификаты, выдаваемые LetsEncrypt для Traefik. Сейчас на сервисы не войти по старым сертификатам, хотя они должны были обновиться автоматом.
Иерархия каталогов Traefik
/data/
acme.json
config.yml
traefik.yml
/docker-compose.yml
docker-compose.yml
version: '3.3'
services:
traefik:
image: traefik:2.2.1
container_name: traefik
restart: unless-stopped
command:
- --entrypoints.https.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
- ./data/config.yml:/config.yml:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.mydomen.com`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=user:$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.mydomen.com`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
config.yml
http:
middlewares:
https-redirect:
redirectScheme:
scheme: https
default-headers:
headers:
frameDeny: true
sslRedirect: true
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsPreload: true
default-whitelist:
ipWhiteList:
sourceRange:
- "10.0.0.0/24"
- "192.168.0.0/16"
- "172.0.0.0/8"
secured:
chain:
middlewares:
- default-whitelist
- default-headers
traefik.yml
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
https:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
filename: /config.yml
certificatesResolvers:
http:
acme:
email: [email protected]
storage: acme.json
httpChallenge:
entryPoint: http
acme.json (файл намеренно видоизменен по понятным причинам)
{
"http": {
"Account": {
"Email": "[email protected]",
"Registration": {
"body": {
"status": "valid",
"contact": [
"mailto:[email protected]"
]
},
"uri": "https://acme-v02.api.letsencrypt.org/acme/acct/2323232323"
},
"PrivateKey": "_private-key_xxxxxxxxxxxxxxx",
"KeyType": "4096"
},
"Certificates": [
{
"domain": {
"main": "traefik.mydomen.com"
},
"certificate": "_sertificate_xxxxxxxxxxxxxxxxx",
"key": "_key_xxxxxxxxxxxxxxxxxxxxxxx",
"Store": "default"
},
{
"domain": {
"main": "pochta.mydomen.com"
},
"certificate": "_sertificate_yyyyyyyyyyyyyyyyyyyyyyyy",
"key": "_key_yyyyyyyyyyyyyyyyyyyyyyyy",
"Store": "default"
},
{
"domain": {
"main": "files.mydomen.com"
},
"certificate": "_sertificate_zzzzzzzzzzzzzzzzzzzzzzzzz",
"key": "_key_zzzzzzzzzzzzzzzzzzzzzzzzz",
"Store": "default"
},
{
"domain": {
"main": "chat.mydomen.com"
},
"certificate": "_sertificate_vvvvvvvvvvvvvvvvvvvvvvvvv",
"key": "_key_vvvvvvvvvvvvvvvvvvvvvvvvv",
"Store": "default"
}
]
}
}
Возможно ли починить механизм получения сертификатов в Traefik или как то обновлять сертификаты в acme.json вручную???
Нужна ваша помощь.