|
| 1 | +# HTTPS einrichten |
| 2 | + |
| 3 | +::: tip Warum HTTPS verwenden? |
| 4 | +HTTPS verschlüsselt die Verbindung zwischen deinem Browser und MySpeed und schützt deine Daten vor dem Abfangen. |
| 5 | +Dies ist besonders wichtig, wenn du über ein Netzwerk oder das Internet auf MySpeed zugreifst. |
| 6 | +::: |
| 7 | + |
| 8 | +## Übersicht |
| 9 | + |
| 10 | +MySpeed unterstützt HTTPS nativ ohne einen Reverse Proxy zu benötigen. Lege einfach deine SSL-Zertifikate im Verzeichnis `data/certs` ab, und MySpeed startet automatisch einen HTTPS-Server. |
| 11 | + |
| 12 | +## Konfiguration |
| 13 | + |
| 14 | +### Umgebungsvariablen |
| 15 | + |
| 16 | +| Variable | Standard | Beschreibung | |
| 17 | +|----------|----------|--------------| |
| 18 | +| `HTTPS_PORT` | `5217` | Der Port für den HTTPS-Server | |
| 19 | + |
| 20 | +### Zertifikatsdateien |
| 21 | + |
| 22 | +Lege deine SSL-Zertifikate im Verzeichnis `data/certs` ab: |
| 23 | + |
| 24 | +- `cert.pem` - Dein SSL-Zertifikat |
| 25 | +- `key.pem` - Dein privater Schlüssel |
| 26 | + |
| 27 | +Die Ordnerstruktur sollte so aussehen: |
| 28 | + |
| 29 | +``` |
| 30 | +MySpeed/ |
| 31 | +├── data/ |
| 32 | +│ ├── certs/ |
| 33 | +│ │ ├── cert.pem |
| 34 | +│ │ └── key.pem |
| 35 | +│ └── ... |
| 36 | +└── ... |
| 37 | +``` |
| 38 | + |
| 39 | +## Eigene Zertifikate verwenden |
| 40 | + |
| 41 | +Wenn du bereits SSL-Zertifikate hast (z.B. von Let's Encrypt oder einer Zertifizierungsstelle), kopiere sie in das Verzeichnis `data/certs`: |
| 42 | + |
| 43 | +```sh |
| 44 | +cp /pfad/zu/deinem/zertifikat.pem /pfad/zu/myspeed/data/certs/cert.pem |
| 45 | +cp /pfad/zu/deinem/privater-schluessel.pem /pfad/zu/myspeed/data/certs/key.pem |
| 46 | +``` |
| 47 | + |
| 48 | +## Selbstsigniertes Zertifikat erstellen |
| 49 | + |
| 50 | +Für Tests oder den internen Gebrauch kannst du ein selbstsigniertes Zertifikat erstellen: |
| 51 | + |
| 52 | +```sh |
| 53 | +openssl req -x509 -newkey rsa:4096 \ |
| 54 | + -keyout data/certs/key.pem \ |
| 55 | + -out data/certs/cert.pem \ |
| 56 | + -sha256 -days 365 -nodes \ |
| 57 | + -subj "/C=DE/ST=Bundesland/L=Stadt/O=Organisation/OU=Abteilung/CN=localhost" |
| 58 | +``` |
| 59 | + |
| 60 | +::: warning Selbstsignierte Zertifikate |
| 61 | +Selbstsignierte Zertifikate zeigen eine Sicherheitswarnung im Browser an. Das ist bei selbstsignierten Zertifikaten normal. |
| 62 | +Für den Produktiveinsatz empfehlen wir Zertifikate von einer vertrauenswürdigen Zertifizierungsstelle wie Let's Encrypt. |
| 63 | +::: |
| 64 | + |
| 65 | +## Let's Encrypt Zertifikate verwenden |
| 66 | + |
| 67 | +Wenn du Let's Encrypt mit certbot verwendest, werden deine Zertifikate normalerweise in `/etc/letsencrypt/live/deine-domain.de/` gespeichert. Du kannst sie entweder kopieren oder verlinken: |
| 68 | + |
| 69 | +```sh |
| 70 | +# Zertifikate kopieren |
| 71 | +sudo cp /etc/letsencrypt/live/deine-domain.de/fullchain.pem /pfad/zu/myspeed/data/certs/cert.pem |
| 72 | +sudo cp /etc/letsencrypt/live/deine-domain.de/privkey.pem /pfad/zu/myspeed/data/certs/key.pem |
| 73 | + |
| 74 | +# Stelle sicher, dass MySpeed sie lesen kann |
| 75 | +sudo chown $USER:$USER /pfad/zu/myspeed/data/certs/*.pem |
| 76 | +``` |
| 77 | + |
| 78 | +::: tip Zertifikatserneuerung |
| 79 | +Denke daran, deine Zertifikate im Verzeichnis `data/certs` zu aktualisieren, wenn sie erneuert werden. |
| 80 | +Du kannst dies mit einem Post-Renewal-Hook in certbot automatisieren. |
| 81 | +::: |
| 82 | + |
| 83 | +## Überprüfen ob HTTPS funktioniert |
| 84 | + |
| 85 | +Nachdem du deine Zertifikate abgelegt und MySpeed gestartet hast, solltest du in der Konsole sehen: |
| 86 | + |
| 87 | +``` |
| 88 | +Server listening on port 5216 |
| 89 | +HTTPS server listening on port 5217 |
| 90 | +``` |
| 91 | + |
| 92 | +Du kannst dann auf MySpeed zugreifen über: |
| 93 | +- HTTP: `http://localhost:5216` |
| 94 | +- HTTPS: `https://localhost:5217` |
| 95 | + |
| 96 | +## Docker-Konfiguration |
| 97 | + |
| 98 | +Bei Verwendung von Docker mountest du das Zertifikatsverzeichnis: |
| 99 | + |
| 100 | +```yaml |
| 101 | +version: "3" |
| 102 | +services: |
| 103 | + myspeed: |
| 104 | + image: germannewsmaker/myspeed |
| 105 | + ports: |
| 106 | + - "5216:5216" |
| 107 | + - "5217:5217" # HTTPS-Port |
| 108 | + volumes: |
| 109 | + - /pfad/zu/myspeed:/myspeed/data |
| 110 | + # Zertifikate befinden sich in /pfad/zu/myspeed/certs/ |
| 111 | + environment: |
| 112 | + - HTTPS_PORT=5217 # Optional, 5217 ist Standard |
| 113 | +``` |
| 114 | +
|
0 commit comments