winlin
Goto Top

Wechsel von Letsencrypt auf SSL Cert

Hallo Zusammen,

ich habe ein Nextcloud Setup und nutze dafür Traefik für die Certs und als DNS duckdns.org
Soweit läuft das alles gut und ich habe schon länger einen account bei no-ip.com mit einem eigenen cert für die domain xxx.ddns.net
Nun möchte ich das in meiner nextcloud docker-compose file ändern.

Dafür muesste ich ja mein cert und den key irgendwo auf meiner raspberry ablegen und dann in der compose file das cert etc. setzen und dafür traefik löschen, oder?

Kann mir evtl jemand erklären was ich genau machen muss?

Content-Key: 3100676892

Url: https://administrator.de/contentid/3100676892

Printed on: April 27, 2024 at 04:04 o'clock

Mitglied: 137960
137960 Jun 18, 2022 at 08:38:11 (UTC)
Goto Top
Deine Frage ist zu allgemein gestellt und es fehlen wesentliche Informationen, um Dir "genau" zu helfen.
Ich schlage vor, dass Du mal deine "docker-compose.yml" hier ablegst (vorher in der Datei sensible Infos rausnehmen bzw. durch "XXXX" ersetzen).

Aller Wahrscheinlichkeit nach muss nur die Ansteuerung von Traefik angepasst werden.
Member: colinardo
colinardo Jun 18, 2022 updated at 09:13:48 (UTC)
Goto Top
Servus
folgendes funktioniert hier im Test problemlos:

Wie auch schon im anderen Beitrag von mir angemerkt: Letsencrypt 5 duplicate certs a week

Im aktuellen Verzeichnis deines Docker-Compose im Unterordner ./certs eine Datei certs.yml mit folgendem Inhalt erstellen (Die Pfade innerhalb der Datei sind Pfade innerhalb des containers)
tls:
  certificates:
    - certFile: "/certificates/cert.pem"  
      keyFile: "/certificates/key.pem"  
      stores:
        - default
  stores:
    default: {}

Dann deine Zertifikatsdateien "cert.pem" und "key.pem" ebenfalls nach ./certs kopieren

Und anschließend das compose file um das Volume für die Zertifikate und den provider ergänzen (simples Beispiel)
version: '3'  

services:
  reverse-proxy:
    image: traefik:latest
    command:
      - "--providers.docker"  
      - "--entrypoints.websecure.address=:443"  
      - "--entrypoints.websecure.http.tls.domains=my.domain.tld"  
      - "--providers.file.filename=/certificates/certs.yml"  

    ports:
      - "80:80"  
      - "443:443"  
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./certs:/certificates

  nextcloud:
    image: nextcloud:latest
    labels:
      - "traefik.enable=true"  
      - "traefik.http.routers.whoami.rule=Host(`my.domain.tld`)"  
      - "traefik.http.routers.whoami.entrypoints=websecure"  
    volumes:
      - nextcloud:/var/www/html

volumes:
  nextcloud:
    name: nextcloud
    external: true
Done.

Grüße Uwe
Member: winlin
winlin Jul 02, 2022 at 19:16:36 (UTC)
Goto Top
Sorry Uwe wenn ich nochmal
Nerve hatte leider keine Möglichkeit das zu testen aufgrund technischer Problemeface-smile

Also….

So sieht meine docker Umgebung aus:
Siehe screenshot


Inhalt der Certs.yml im nextcloud docker compose Ordner:
tls:
certificates:
    - certFile: "/var/www/html/ssl/nando-ddns-net-cert-chain.pem"  
keyFile: "/var/www/html/ssl/nando-ddns-net.key"  
stores:
- default
stores:
default: {}

Das pem und key file liegen also im nextcloud docker compose Ordner im subdirectory certs.
Ebenso liegt es im nextcloud docker Container unter /var/www/html/ssl

Mein nextcloud docker compose file sieht so aus:
version: '3.3'  
services:
nextcloud-db:
image: mariadb
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /home/nando/docker/containers/nextcloud/database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=nextcloud #SQL root Passwort eingeben
- MYSQL_PASSWORD=nextcloud #SQL Benutzer Passwort eingeben
- MYSQL_DATABASE=nextcloud #Datenbank Name
- MYSQL_USER=nextcloud #SQL Nutzername
- MYSQL_INITDB_SKIP_TZINFO=1
networks:
- default
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
hostname: nextcloud-redis
networks:
- default
restart: unless-stopped
command: redis-server --requirepass test # Redis Passwort eingeben
nextcloud-app:
image: nextcloud
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- nextcloud-db
- nextcloud-redis
environment:
REDIS_HOST: nextcloud-redis
REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben
volumes:
- /home/nando/docker/containers/nextcloud/config:/var/www/html
- /media/NVMe_1TB/nextcloud/data:/var/www/html/data:rw
labels:
- "traefik.enable=true"  
- "traefik.http.routers.nextcloud-app.entrypoints=websecure"  
- "traefik.http.routers.nextcloud-app.rule=Host(`nando-cloud.duckdns.org`)"  
- "traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https"  
- "traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect"  
- "traefik.http.routers.nextcloud-app-secure.entrypoints=websecure"  
- "traefik.http.routers.nextcloud-app-secure.rule=Host(`nando-cloud.duckdns.org`)"  
- "traefik.http.routers.nextcloud-app-secure.tls=true"  
- "traefik.http.routers.nextcloud-app-secure.tls.certresolver=letsencrypt"  
- "traefik.http.routers.nextcloud-app-secure.service=nextcloud-app"  
- "traefik.http.services.nextcloud-app.loadbalancer.server.port=80"  
- "traefik.docker.network=proxy"  
- "traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file"  
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"  
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"  
networks:
- proxy
- default
networks:
proxy:
external: true

Wie sieht dann nun die Änderung hier aus? Ich muss ja das volume mit den certs angeben oder??? Was mach ich mit dem „Labels“ Teil für traefik? Da steht ja auch noch die duckdns Domain???

Ich muss ja folgendes hinzufügen:

services:
reverse-proxy:
image: traefik:latest
command:
- "--providers.docker"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.http.tls.domains=my.domain.tld"
- "--providers.file.filename=/certificates/certs.yml"

ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/www/html/ssl:/home/nando/docker/compose/nextcloud/certs
a3c8be9e-afc3-4333-a5af-1ec290cc9586.