Über das Internet erreichbar gemacht
Dieser Commit ist enthalten in:
@@ -17,7 +17,28 @@
|
|||||||
"Bash(mkdir:*)",
|
"Bash(mkdir:*)",
|
||||||
"Bash(sudo touch:*)",
|
"Bash(sudo touch:*)",
|
||||||
"Bash(docker volume rm:*)",
|
"Bash(docker volume rm:*)",
|
||||||
"Bash(rm:*)"
|
"Bash(rm:*)",
|
||||||
|
"Bash(docker-compose stop:*)",
|
||||||
|
"Bash(docker-compose rm:*)",
|
||||||
|
"Bash(docker-compose down:*)",
|
||||||
|
"Bash(docker stop:*)",
|
||||||
|
"Bash(docker rm:*)",
|
||||||
|
"Bash(docker-compose build:*)",
|
||||||
|
"Bash(docker-compose up:*)",
|
||||||
|
"Bash(docker-compose ps:*)",
|
||||||
|
"Bash(docker logs:*)",
|
||||||
|
"Bash(nslookup:*)",
|
||||||
|
"Bash(getent:*)",
|
||||||
|
"Bash(ipconfig:*)",
|
||||||
|
"Bash(ss:*)",
|
||||||
|
"Bash(curl:*)",
|
||||||
|
"Bash(powershell.exe:*)",
|
||||||
|
"Bash(cp:*)",
|
||||||
|
"Bash(chmod:*)",
|
||||||
|
"Bash(unzip:*)",
|
||||||
|
"Bash(python3:*)",
|
||||||
|
"Bash(grep:*)",
|
||||||
|
"Bash(docker exec:*)"
|
||||||
],
|
],
|
||||||
"deny": []
|
"deny": []
|
||||||
}
|
}
|
||||||
|
|||||||
120
DEPLOYMENT.md
Normale Datei
120
DEPLOYMENT.md
Normale Datei
@@ -0,0 +1,120 @@
|
|||||||
|
# 🚀 Deployment-Anleitung für Internet-Zugriff
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
- ✅ Docker und Docker Compose installiert
|
||||||
|
- ✅ Subdomains bei IONOS eingerichtet
|
||||||
|
- ✅ DynDNS in FRITZ!Box konfiguriert
|
||||||
|
- ✅ Port-Weiterleitung in FRITZ!Box (Port 443 → 192.168.178.88)
|
||||||
|
|
||||||
|
## Schritt-für-Schritt Anleitung
|
||||||
|
|
||||||
|
### 1. Windows Firewall konfigurieren
|
||||||
|
```powershell
|
||||||
|
# PowerShell als Administrator öffnen
|
||||||
|
cd C:\Users\Administrator\Documents\GitHub\v2-Docker
|
||||||
|
.\setup-firewall.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Docker-Container stoppen (falls laufend)
|
||||||
|
```bash
|
||||||
|
cd v2
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Backup-Verzeichnis erstellen
|
||||||
|
```bash
|
||||||
|
mkdir C:\Users\Administrator\Documents\GitHub\v2-Docker\backups
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Docker Images neu bauen und starten
|
||||||
|
```bash
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Container-Status prüfen
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
Alle Container sollten "Up" sein:
|
||||||
|
- db (PostgreSQL)
|
||||||
|
- admin-panel
|
||||||
|
- license-server
|
||||||
|
- nginx-proxy
|
||||||
|
|
||||||
|
### 6. Logs prüfen
|
||||||
|
```bash
|
||||||
|
# Nginx Logs
|
||||||
|
docker logs nginx-proxy
|
||||||
|
|
||||||
|
# Admin Panel Logs
|
||||||
|
docker logs admin-panel
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. Lokaler Test
|
||||||
|
Öffnen Sie im Browser:
|
||||||
|
- http://localhost (sollte auf HTTPS umleiten)
|
||||||
|
- https://localhost (Zertifikatswarnung ist normal)
|
||||||
|
|
||||||
|
### 8. Internet-Test
|
||||||
|
Ihr Kollege kann jetzt zugreifen über:
|
||||||
|
- https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
|
||||||
|
|
||||||
|
**Login-Daten:**
|
||||||
|
- Benutzer: w@rh@mm3r
|
||||||
|
- Passwort: Warhammer123!
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Problem: Seite nicht erreichbar
|
||||||
|
1. **DynDNS prüfen:**
|
||||||
|
```bash
|
||||||
|
nslookup admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
|
||||||
|
```
|
||||||
|
Die IP sollte Ihre aktuelle öffentliche IP sein.
|
||||||
|
|
||||||
|
2. **Port-Weiterleitung prüfen:**
|
||||||
|
- FRITZ!Box → Internet → Freigaben
|
||||||
|
- Port 443 muss auf 192.168.178.88 weitergeleitet werden
|
||||||
|
|
||||||
|
3. **Docker-Container prüfen:**
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
netstat -an | findstr :443
|
||||||
|
```
|
||||||
|
|
||||||
|
### Problem: Zertifikatswarnung
|
||||||
|
Das ist normal bei selbstsignierten Zertifikaten. Der Benutzer kann:
|
||||||
|
1. "Erweitert" klicken
|
||||||
|
2. "Weiter zu admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com (unsicher)" klicken
|
||||||
|
|
||||||
|
### Let's Encrypt aktivieren (optional)
|
||||||
|
Wenn alles funktioniert, können Sie echte Zertifikate aktivieren:
|
||||||
|
|
||||||
|
1. E-Mail in docker-compose.yaml anpassen:
|
||||||
|
```yaml
|
||||||
|
LETSENCRYPT_EMAIL: "ihre-email@domain.de"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Let's Encrypt aktivieren:
|
||||||
|
```yaml
|
||||||
|
LETSENCRYPT_ENABLED: "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Container neu starten:
|
||||||
|
```bash
|
||||||
|
docker-compose up -d nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
## Sicherheitshinweise
|
||||||
|
- 🔒 Ändern Sie die Standard-Passwörter in der .env Datei
|
||||||
|
- 🔒 Aktivieren Sie Let's Encrypt für echte SSL-Zertifikate
|
||||||
|
- 🔒 Überwachen Sie die Audit-Logs regelmäßig
|
||||||
|
- 🔒 Erstellen Sie regelmäßige Backups
|
||||||
|
|
||||||
|
## Support
|
||||||
|
Bei Problemen:
|
||||||
|
1. Container-Logs prüfen: `docker logs <container-name>`
|
||||||
|
2. Netzwerk-Konnektivität testen
|
||||||
|
3. Firewall-Einstellungen überprüfen
|
||||||
194
JOURNAL.md
194
JOURNAL.md
@@ -13,69 +13,118 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Aktueller Stand (2025-01-06)
|
## Aktueller Stand (2025-06-07)
|
||||||
|
|
||||||
### ✅ Implementiert
|
### ✅ Implementiert
|
||||||
1. **Docker-Infrastruktur**
|
1. **Docker-Infrastruktur**
|
||||||
- docker-compose.yaml mit 3 Services (PostgreSQL, Admin Panel, License Server)
|
- docker-compose.yaml mit 4 Services (PostgreSQL, Admin Panel, License Server, Nginx)
|
||||||
- Interne Bridge-Netzwerkkommunikation
|
- Interne Bridge-Netzwerkkommunikation
|
||||||
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service)
|
- Resource Limits konfiguriert (2 CPUs, 4GB RAM pro Service)
|
||||||
|
- Nginx Reverse Proxy für SSL-Termination
|
||||||
|
|
||||||
2. **PostgreSQL Datenbank**
|
2. **PostgreSQL Datenbank**
|
||||||
- Tabellen: customers, licenses
|
- Tabellen: customers, licenses, sessions, audit_log, backup_history
|
||||||
- Init-Script vorhanden
|
- UTF-8 Support mit deutscher Locale (de_DE.UTF-8)
|
||||||
|
- Init-Script mit vollständigem Schema
|
||||||
- Persistente Datenspeicherung
|
- Persistente Datenspeicherung
|
||||||
|
|
||||||
3. **Admin Panel (Basis)**
|
3. **Admin Panel (Vollständig)**
|
||||||
- Flask-Anwendung mit Session-Management
|
- Flask-Anwendung mit Session-Management
|
||||||
- Login-Funktionalität für 2 Admin-User
|
- Login-Funktionalität für 2 Admin-User (rac00n, w@rh@mm3r)
|
||||||
- Lizenz-Erstellungsformular
|
- Dashboard mit Statistiken und Widgets
|
||||||
- Automatische Kundenerstellung
|
- Lizenz-CRUD (Create, Read, Update, Delete)
|
||||||
- Läuft auf Port 443 mit selbstsigniertem SSL
|
- Kunden-CRUD mit Lizenzzuordnung
|
||||||
|
- Session-Tracking und -Verwaltung
|
||||||
|
- Audit-Log für alle Aktionen
|
||||||
|
- Export-Funktion (CSV/Excel)
|
||||||
|
- Backup-System mit Verschlüsselung
|
||||||
|
- UTF-8 Support für deutsche Umlaute
|
||||||
|
- Suche und Filter mit Pagination
|
||||||
|
|
||||||
|
4. **Internet-Zugriff**
|
||||||
|
- Nginx Reverse Proxy mit SSL-Termination
|
||||||
|
- IONOS SSL-Zertifikate mit vollständiger Certificate Chain
|
||||||
|
- Subdomain-Routing funktioniert (admin-panel-undso, api-software-undso)
|
||||||
|
- DynDNS und Port-Forwarding konfiguriert
|
||||||
|
- Feste IP-Adresse (192.168.178.88)
|
||||||
|
|
||||||
### ❌ Noch nicht implementiert
|
### ❌ Noch nicht implementiert
|
||||||
1. **License Server API**
|
1. **License Server API**
|
||||||
- Nur Platzhalter-Container vorhanden
|
- Nur Platzhalter-Container vorhanden
|
||||||
- Keine API-Endpunkte
|
- Keine API-Endpunkte (/api/version, /api/validate, /api/heartbeat)
|
||||||
- Keine Lizenzvalidierung
|
- Keine Lizenzvalidierung
|
||||||
- Kein Heartbeat/Session-Management
|
- Kein aktives Session-Management
|
||||||
|
|
||||||
2. **Admin Panel Erweiterungen**
|
|
||||||
- Keine Lizenzübersicht
|
|
||||||
- Keine Bearbeitungs-/Löschfunktionen
|
|
||||||
- Keine Kundenverwaltung
|
|
||||||
- Kein UTF-8 Support für deutsche Umlaute
|
|
||||||
|
|
||||||
3. **Internet-Zugriff**
|
|
||||||
- Kein Reverse Proxy
|
|
||||||
- Keine gültigen SSL-Zertifikate
|
|
||||||
- Subdomain-Routing nicht konfiguriert
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Offene Aufgaben (Priorität)
|
## Offene Aufgaben (Priorität)
|
||||||
|
|
||||||
### 🔴 Hoch
|
### 🔴 Hoch (Basis-Funktionalität)
|
||||||
1. **UTF-8 Support** für deutsche Sonderzeichen (äöüß)
|
1. **License Server API implementieren**
|
||||||
2. **Reverse Proxy Setup** (Nginx/Traefik) für Subdomain-Routing
|
|
||||||
3. **SSL-Zertifikate** (Let's Encrypt) für beide Subdomains
|
|
||||||
4. **License Server API implementieren**
|
|
||||||
- `/api/version` - Versionscheck
|
- `/api/version` - Versionscheck
|
||||||
- `/api/validate` - Lizenzvalidierung
|
- `/api/validate` - Lizenzvalidierung
|
||||||
- `/api/heartbeat` - Session-Management
|
- `/api/heartbeat` - Session-Management
|
||||||
5. **Admin Panel: Lizenzübersicht**
|
2. **Reverse Proxy Setup** (Nginx/Traefik) für Subdomain-Routing
|
||||||
|
3. **SSL-Zertifikate** (Let's Encrypt) für beide Subdomains
|
||||||
|
4. **Session-Management** (nur eine aktive Session pro Lizenz)
|
||||||
|
|
||||||
### 🟡 Mittel
|
### 🟡 Mittel (Erweiterte Features)
|
||||||
1. **Admin Panel: Lizenz bearbeiten/löschen**
|
1. **Erweiterte Sicherheit**
|
||||||
2. **Admin Panel: Kundenverwaltung**
|
- Rate-Limiting für Login-Versuche (Brute-Force-Schutz)
|
||||||
3. **Session-Tracking** (nur eine aktive Session pro Lizenz)
|
- 2-Faktor-Authentifizierung (2FA)
|
||||||
4. **Logging-System** für Audit-Trail
|
- Session-Timeout konfigurierbar
|
||||||
|
- IP-Whitelist für Admin-Zugriff
|
||||||
|
- Passwort-Richtlinien (Komplexität, Ablauf)
|
||||||
|
|
||||||
### 🟢 Niedrig
|
2. **Lizenz-Verwaltung Erweiterungen**
|
||||||
1. **Email-Benachrichtigungen**
|
- Bulk-Import von Lizenzen (CSV/Excel Upload)
|
||||||
2. **JWT-Authentifizierung für API**
|
- Lizenz-Templates für schnelle Erstellung
|
||||||
3. **Backup-Strategie**
|
- Lizenz-Verlängerung mit einem Klick
|
||||||
4. **VPS-Migrationsdokumentation**
|
- Lizenz-Historie (wer hatte welche Lizenz wann)
|
||||||
|
- Lizenz-Gruppen/Pakete
|
||||||
|
- Automatische Lizenzverlängerung
|
||||||
|
|
||||||
|
3. **Benachrichtigungen**
|
||||||
|
- E-Mail bei ablaufenden Lizenzen (Struktur bereits vorbereitet)
|
||||||
|
- Dashboard-Benachrichtigungen (Toast/Pop-ups)
|
||||||
|
- Webhook-Support für externe Systeme
|
||||||
|
- SMS-Benachrichtigungen
|
||||||
|
- Slack/Teams Integration
|
||||||
|
|
||||||
|
4. **API für Automatisierung**
|
||||||
|
- REST API für Admin-Funktionen
|
||||||
|
- API-Keys für programmatischen Zugriff
|
||||||
|
- Swagger/OpenAPI Dokumentation
|
||||||
|
- Rate Limiting für API
|
||||||
|
- Webhook Events
|
||||||
|
|
||||||
|
### 🟢 Niedrig (Nice-to-have)
|
||||||
|
1. **Benutzeroberfläche**
|
||||||
|
- Dark Mode Toggle
|
||||||
|
- Mobile-optimierte Ansicht (Responsive)
|
||||||
|
- Mehrsprachigkeit (Deutsch/Englisch)
|
||||||
|
- Anpassbare Dashboard-Widgets
|
||||||
|
- Drag & Drop Dashboard
|
||||||
|
- Keyboard Shortcuts
|
||||||
|
|
||||||
|
2. **Erweiterte Statistiken**
|
||||||
|
- Grafische Auswertungen (Chart.js/D3.js)
|
||||||
|
- Umsatz-Statistiken
|
||||||
|
- Nutzungsstatistiken pro Kunde
|
||||||
|
- Lizenz-Verlaufsdiagramme
|
||||||
|
- Geografische Verteilung
|
||||||
|
- Vorhersage-Analysen
|
||||||
|
|
||||||
|
3. **Weitere Features**
|
||||||
|
- Rechnungserstellung
|
||||||
|
- Mehrmandantenfähigkeit
|
||||||
|
- Benutzerverwaltung (verschiedene Admin-Rollen)
|
||||||
|
- Lizenz-Aktivierung per E-Mail
|
||||||
|
- QR-Code für Lizenzschlüssel
|
||||||
|
- Dokumentenverwaltung pro Kunde
|
||||||
|
- JWT-Authentifizierung für API
|
||||||
|
- Docker Resource-Optimierung
|
||||||
|
- VPS-Migrationsdokumentation
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -97,12 +146,12 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
|
|
||||||
## Änderungsprotokoll
|
## Änderungsprotokoll
|
||||||
|
|
||||||
### 2025-01-06 - Journal erstellt
|
### 2025-06-06 - Journal erstellt
|
||||||
- Initialer Projektstand dokumentiert
|
- Initialer Projektstand dokumentiert
|
||||||
- Aufgabenliste priorisiert
|
- Aufgabenliste priorisiert
|
||||||
- Technische Anforderungen festgehalten
|
- Technische Anforderungen festgehalten
|
||||||
|
|
||||||
### 2025-01-06 - UTF-8 Support implementiert
|
### 2025-06-06 - UTF-8 Support implementiert
|
||||||
- Flask App Konfiguration für UTF-8 hinzugefügt (JSON_AS_ASCII=False)
|
- Flask App Konfiguration für UTF-8 hinzugefügt (JSON_AS_ASCII=False)
|
||||||
- PostgreSQL Verbindung mit UTF-8 client_encoding
|
- PostgreSQL Verbindung mit UTF-8 client_encoding
|
||||||
- HTML Forms mit accept-charset="UTF-8"
|
- HTML Forms mit accept-charset="UTF-8"
|
||||||
@@ -122,7 +171,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- Kundennamen mit Umlauten testen (z.B. "Müller GmbH", "Björn Schäfer")
|
- Kundennamen mit Umlauten testen (z.B. "Müller GmbH", "Björn Schäfer")
|
||||||
- Email mit Umlauten testen
|
- Email mit Umlauten testen
|
||||||
|
|
||||||
### 2025-01-06 - Lizenzübersicht implementiert
|
### 2025-06-06 - Lizenzübersicht implementiert
|
||||||
- Neue Route `/licenses` für Lizenzübersicht
|
- Neue Route `/licenses` für Lizenzübersicht
|
||||||
- SQL-Query mit JOIN zwischen licenses und customers
|
- SQL-Query mit JOIN zwischen licenses und customers
|
||||||
- Status-Berechnung (aktiv, läuft bald ab, abgelaufen)
|
- Status-Berechnung (aktiv, läuft bald ab, abgelaufen)
|
||||||
@@ -146,7 +195,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- Mehrere Lizenzen mit verschiedenen Ablaufdaten erstellen
|
- Mehrere Lizenzen mit verschiedenen Ablaufdaten erstellen
|
||||||
- Lizenzübersicht unter /licenses aufrufen
|
- Lizenzübersicht unter /licenses aufrufen
|
||||||
|
|
||||||
### 2025-01-06 - Lizenz bearbeiten/löschen implementiert
|
### 2025-06-06 - Lizenz bearbeiten/löschen implementiert
|
||||||
- Neue Routen für Bearbeiten und Löschen von Lizenzen
|
- Neue Routen für Bearbeiten und Löschen von Lizenzen
|
||||||
- Bearbeitungsformular mit vorausgefüllten Werten
|
- Bearbeitungsformular mit vorausgefüllten Werten
|
||||||
- Aktiv/Inaktiv-Status kann geändert werden
|
- Aktiv/Inaktiv-Status kann geändert werden
|
||||||
@@ -170,7 +219,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- POST-only für Löschvorgänge
|
- POST-only für Löschvorgänge
|
||||||
- Bestätigungsdialog vor dem Löschen
|
- Bestätigungsdialog vor dem Löschen
|
||||||
|
|
||||||
### 2025-01-06 - Kundenverwaltung implementiert
|
### 2025-06-06 - Kundenverwaltung implementiert
|
||||||
- Komplette CRUD-Funktionalität für Kunden
|
- Komplette CRUD-Funktionalität für Kunden
|
||||||
- Übersicht zeigt Anzahl aktiver/gesamter Lizenzen pro Kunde
|
- Übersicht zeigt Anzahl aktiver/gesamter Lizenzen pro Kunde
|
||||||
- Kunden können nur gelöscht werden, wenn sie keine Lizenzen haben
|
- Kunden können nur gelöscht werden, wenn sie keine Lizenzen haben
|
||||||
@@ -195,7 +244,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- Aktive Lizenzen werden separat gezählt (nicht abgelaufen + aktiv)
|
- Aktive Lizenzen werden separat gezählt (nicht abgelaufen + aktiv)
|
||||||
- UTF-8 Support für Kundennamen mit Umlauten
|
- UTF-8 Support für Kundennamen mit Umlauten
|
||||||
|
|
||||||
### 2025-01-06 - Dashboard mit Statistiken implementiert
|
### 2025-06-06 - Dashboard mit Statistiken implementiert
|
||||||
- Übersichtliches Dashboard als neue Startseite
|
- Übersichtliches Dashboard als neue Startseite
|
||||||
- Statistik-Karten mit wichtigen Kennzahlen
|
- Statistik-Karten mit wichtigen Kennzahlen
|
||||||
- Listen für bald ablaufende und zuletzt erstellte Lizenzen
|
- Listen für bald ablaufende und zuletzt erstellte Lizenzen
|
||||||
@@ -224,7 +273,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- Warnung für bald ablaufende Lizenzen
|
- Warnung für bald ablaufende Lizenzen
|
||||||
- Übersicht der neuesten Aktivitäten
|
- Übersicht der neuesten Aktivitäten
|
||||||
|
|
||||||
### 2025-01-06 - Suchfunktion implementiert
|
### 2025-06-06 - Suchfunktion implementiert
|
||||||
- Volltextsuche für Lizenzen und Kunden
|
- Volltextsuche für Lizenzen und Kunden
|
||||||
- Case-insensitive Suche mit LIKE-Operator
|
- Case-insensitive Suche mit LIKE-Operator
|
||||||
- Suchergebnisse mit Hervorhebung des Suchbegriffs
|
- Suchergebnisse mit Hervorhebung des Suchbegriffs
|
||||||
@@ -248,7 +297,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- Wildcards (%) für Teilstring-Suche
|
- Wildcards (%) für Teilstring-Suche
|
||||||
- UTF-8 kompatibel für deutsche Umlaute
|
- UTF-8 kompatibel für deutsche Umlaute
|
||||||
|
|
||||||
### 2025-01-06 - Filter und Pagination implementiert
|
### 2025-06-06 - Filter und Pagination implementiert
|
||||||
- Erweiterte Filteroptionen für Lizenzübersicht
|
- Erweiterte Filteroptionen für Lizenzübersicht
|
||||||
- Pagination für große Datenmengen (20 Einträge pro Seite)
|
- Pagination für große Datenmengen (20 Einträge pro Seite)
|
||||||
- Filter bleiben bei Seitenwechsel erhalten
|
- Filter bleiben bei Seitenwechsel erhalten
|
||||||
@@ -276,7 +325,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
- URL-Parameter bleiben bei Navigation erhalten
|
- URL-Parameter bleiben bei Navigation erhalten
|
||||||
- Responsive Bootstrap-Komponenten
|
- Responsive Bootstrap-Komponenten
|
||||||
|
|
||||||
### 2025-01-06 - Session-Tracking implementiert
|
### 2025-06-06 - Session-Tracking implementiert
|
||||||
- Neue Tabelle für Session-Verwaltung
|
- Neue Tabelle für Session-Verwaltung
|
||||||
- Anzeige aktiver und beendeter Sessions
|
- Anzeige aktiver und beendeter Sessions
|
||||||
- Manuelles Beenden von Sessions möglich
|
- Manuelles Beenden von Sessions möglich
|
||||||
@@ -305,7 +354,7 @@ Lizenzmanagement-System für Social Media Account-Erstellungssoftware mit Docker
|
|||||||
**Hinweis:**
|
**Hinweis:**
|
||||||
Die Session-Daten werden erst gefüllt, wenn der License Server API implementiert ist und Clients sich verbinden.
|
Die Session-Daten werden erst gefüllt, wenn der License Server API implementiert ist und Clients sich verbinden.
|
||||||
|
|
||||||
### 2025-01-06 - Export-Funktion implementiert
|
### 2025-06-06 - Export-Funktion implementiert
|
||||||
- CSV und Excel Export für Lizenzen und Kunden
|
- CSV und Excel Export für Lizenzen und Kunden
|
||||||
- Formatierte Ausgabe mit deutschen Datumsformaten
|
- Formatierte Ausgabe mit deutschen Datumsformaten
|
||||||
- UTF-8 Unterstützung für Sonderzeichen
|
- UTF-8 Unterstützung für Sonderzeichen
|
||||||
@@ -331,7 +380,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
|||||||
- Automatische Spaltenbreite in Excel
|
- Automatische Spaltenbreite in Excel
|
||||||
- BOM für UTF-8 CSV (Excel-Kompatibilität)
|
- BOM für UTF-8 CSV (Excel-Kompatibilität)
|
||||||
|
|
||||||
### 2025-01-06 - Audit-Log implementiert
|
### 2025-06-06 - Audit-Log implementiert
|
||||||
- Vollständiges Änderungsprotokoll für alle Aktionen
|
- Vollständiges Änderungsprotokoll für alle Aktionen
|
||||||
- Filterbare Übersicht mit Pagination
|
- Filterbare Übersicht mit Pagination
|
||||||
- Detaillierte Anzeige von Änderungen
|
- Detaillierte Anzeige von Änderungen
|
||||||
@@ -357,7 +406,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
|||||||
- 50 Einträge pro Seite mit Pagination
|
- 50 Einträge pro Seite mit Pagination
|
||||||
- IP-Adresse und User-Agent Tracking
|
- IP-Adresse und User-Agent Tracking
|
||||||
|
|
||||||
### 2025-01-06 - PostgreSQL UTF-8 Locale konfiguriert
|
### 2025-06-06 - PostgreSQL UTF-8 Locale konfiguriert
|
||||||
- Eigenes PostgreSQL Dockerfile für deutsche Locale
|
- Eigenes PostgreSQL Dockerfile für deutsche Locale
|
||||||
- Sicherstellung der UTF-8 Unterstützung auf Datenbankebene
|
- Sicherstellung der UTF-8 Unterstützung auf Datenbankebene
|
||||||
|
|
||||||
@@ -378,7 +427,7 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
|||||||
- locale-gen für de_DE.UTF-8
|
- locale-gen für de_DE.UTF-8
|
||||||
- Vollständige UTF-8 Unterstützung für deutsche Sonderzeichen
|
- Vollständige UTF-8 Unterstützung für deutsche Sonderzeichen
|
||||||
|
|
||||||
### 2025-01-07 - Backup-Funktionalität implementiert
|
### 2025-06-07 - Backup-Funktionalität implementiert
|
||||||
- Verschlüsselte Backups mit manueller und automatischer Ausführung
|
- Verschlüsselte Backups mit manueller und automatischer Ausführung
|
||||||
- Backup-Historie mit Download und Wiederherstellung
|
- Backup-Historie mit Download und Wiederherstellung
|
||||||
- Dashboard-Integration für Backup-Status
|
- Dashboard-Integration für Backup-Status
|
||||||
@@ -409,4 +458,45 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
|||||||
- APScheduler für automatische Backups
|
- APScheduler für automatische Backups
|
||||||
- pg_dump/psql für Datenbank-Operationen
|
- pg_dump/psql für Datenbank-Operationen
|
||||||
- Audit-Log für alle Backup-Aktionen
|
- Audit-Log für alle Backup-Aktionen
|
||||||
- Sicherheitsabfrage bei Wiederherstellung
|
- Sicherheitsabfrage bei Wiederherstellung
|
||||||
|
|
||||||
|
### 2025-06-07 - HTTPS/SSL und Internet-Zugriff implementiert
|
||||||
|
- Nginx Reverse Proxy für externe Erreichbarkeit eingerichtet
|
||||||
|
- SSL-Zertifikate von IONOS mit vollständiger Certificate Chain integriert
|
||||||
|
- Netzwerkkonfiguration für feste IP-Adresse
|
||||||
|
- DynDNS und Port-Forwarding konfiguriert
|
||||||
|
|
||||||
|
**Neue Features:**
|
||||||
|
- **Nginx Reverse Proxy**: Leitet HTTPS-Anfragen an Container weiter
|
||||||
|
- **SSL-Zertifikate**: Wildcard-Zertifikat von IONOS für *.z5m7q9dk3ah2v1plx6ju.com
|
||||||
|
- **Certificate Chain**: Server-, Intermediate- und Root-Zertifikate kombiniert
|
||||||
|
- **Subdomain-Routing**: admin-panel-undso und api-software-undso
|
||||||
|
- **Port-Forwarding**: FRITZ!Box 443 → 192.168.178.88
|
||||||
|
- **Feste IP**: Windows-PC auf 192.168.178.88 konfiguriert
|
||||||
|
|
||||||
|
**Neue/Geänderte Dateien:**
|
||||||
|
- v2_nginx/nginx.conf (Reverse Proxy Konfiguration)
|
||||||
|
- v2_nginx/Dockerfile (Nginx Container mit SSL)
|
||||||
|
- v2_nginx/ssl/fullchain.pem (Certificate Chain)
|
||||||
|
- v2_nginx/ssl/privkey.pem (Private Key)
|
||||||
|
- v2/docker-compose.yaml (nginx Service hinzugefügt)
|
||||||
|
- set-static-ip.ps1 (PowerShell Script für feste IP)
|
||||||
|
- reset-to-dhcp.ps1 (PowerShell Script für DHCP)
|
||||||
|
|
||||||
|
**Technische Details:**
|
||||||
|
- SSL-Termination am Nginx Reverse Proxy
|
||||||
|
- Backend-Kommunikation über Docker-internes Netzwerk
|
||||||
|
- Admin-Panel nur noch über Nginx erreichbar (Port 443 nicht mehr exposed)
|
||||||
|
- License-Server behält externen Port 8443 für direkte API-Zugriffe
|
||||||
|
- Intermediate Certificates aus ZIP extrahiert und korrekt verkettet
|
||||||
|
|
||||||
|
**Zugangsdaten:**
|
||||||
|
- Admin-Panel: https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com
|
||||||
|
- Benutzer 1: rac00n / 1248163264
|
||||||
|
- Benutzer 2: w@rh@mm3r / Warhammer123!
|
||||||
|
|
||||||
|
**Status:**
|
||||||
|
- ✅ Admin-Panel extern erreichbar ohne SSL-Warnungen
|
||||||
|
- ✅ Reverse Proxy funktioniert
|
||||||
|
- ✅ SSL-Zertifikate korrekt konfiguriert
|
||||||
|
- ✅ Netzwerk-Setup abgeschlossen
|
||||||
27
_.z5m7q9dk3ah2v1plx6ju.com_private_key.key
Normale Datei
27
_.z5m7q9dk3ah2v1plx6ju.com_private_key.key
Normale Datei
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w9
|
||||||
|
0MkY/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G
|
||||||
|
7+EJlYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwS
|
||||||
|
qSQ9SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLc
|
||||||
|
pW6kwkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+Xr
|
||||||
|
U4CtiETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABAoIBADQVXYq7q9B6dTO0
|
||||||
|
Z/oA974Z4lsK6aQfK4Z7J2OIenLeky3fxAVNcpW66hGzDSl6KCYnZmCGA6U3qF27
|
||||||
|
uFAkq+eqaBhaqZu2569LtCjy7PK6LYFAgU5ROty5QJHgTcKNmXVne4iBjywx6QRC
|
||||||
|
h8eH0VnZisTNZjZkZngFSVT0W2M8XZjzXBkAH448KhRssMLB5WzJ/jToWdTqA/zg
|
||||||
|
M4dLnhSWQfgrZyzI1TA8rUu3v3UAdd37g8KCnq9+7Vtfr0rEe6K5c3JJIwKJWcXv
|
||||||
|
9GM6kC82otpHFGVXjZC040nESyeWUESaHphO3UUlQStgmUak3Bav0mniV/+6pCCq
|
||||||
|
DZL5nQECgYEA4SpSXfrD6OoJhcjT5fqBqEg6wKB8IDfy05zNqAvg5VKDylG1x+ir
|
||||||
|
umXD6znDmMSdODjHpIJR+El1Qp2DbRkDdJ3x3TTDclqFA9p7zcLBmS2FTnEfXX6o
|
||||||
|
R3M9LgkDNdqVgyzEK3e9LNZi6xCSMrRp/32eRGJqqs+KEDydBvj4eA8CgYEAwbtL
|
||||||
|
8QwSuZqEubRsz4f2sJqG4wODxl6jenYRPLXrL9BpLzzGsw460UKjaUtyzBYeJoBm
|
||||||
|
Fc+bBcyzMt6vsarzlyXpmEfDsf3+f1/l4MbcUoW3YWmrPdsQ8JuqCheRbl84h5lT
|
||||||
|
MOaiGjPlK7hnIxlq+mcnn6hnmUuObUCuGHHQeCcCgYBMQVwBzfJZSCGPeHMi+NK+
|
||||||
|
Xi/fmrpO4wPO3NTda6BvqaFOfJu2pzq5dsuCN17htvyT1M7wDN6b2qzmsZeX9Bey
|
||||||
|
f+cwhjUG3lcb9ftltOaB7OOvrCn2LPXqtMFsfMrkizGFajzJh9S+gaCggU0x9N3N
|
||||||
|
FArsl/QOAxl75Ds96EWlywKBgCZH8kuhTRnr1Io1gsLHZRGklz7IdQN/s+IA7osG
|
||||||
|
j4CVOBOjeMfs6eZruoqV5As7251UBdgNe957gnVs117OHvAhB7WViK/lNqLIuk3e
|
||||||
|
Pa74yTGwhavlW8WPnNv9qDkdC7iPrYaeLC3tTz2CZK7k2OS9+XBtAHukGHKyMzSV
|
||||||
|
WNJFAoGAMO81Vw+bw0c4twBhRvQhpXsXT5gCiDxtS+I+9neXcmEo0JvB+JM96j7I
|
||||||
|
UNKGFVcx22LgLIJb+77Euq42x8TpLIbnxCbLsT2GKxqqrB0z+YSixXrNotqV8/FB
|
||||||
|
EYo1D+bSB7wnFbLRh4dKJ8rFAu7MSt5/KH9qRHGNtDFLETxAvmE=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
BIN
_.z5m7q9dk3ah2v1plx6ju.com_ssl_certificate_INTERMEDIATE.zip
Normale Datei
BIN
_.z5m7q9dk3ah2v1plx6ju.com_ssl_certificate_INTERMEDIATE.zip
Normale Datei
Binäre Datei nicht angezeigt.
27
fullchain.pem
Normale Datei
27
fullchain.pem
Normale Datei
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEhTCCA22gAwIBAgIUUH8qfFuR1gBrFIPMSLR3KQsXmsEwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwazELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhdmFyaWExDzANBgNVBAcMBk11
|
||||||
|
bmljaDEUMBIGA1UECgwLRGV2ZWxvcG1lbnQxIzAhBgNVBAMMGiouejVtN3E5ZGsz
|
||||||
|
YWgydjFwbHg2anUuY29tMB4XDTI1MDYwNzE1NTMwOFoXDTI2MDYwNzE1NTMwOFow
|
||||||
|
azELMAkGA1UEBhMCREUxEDAOBgNVBAgMB0JhdmFyaWExDzANBgNVBAcMBk11bmlj
|
||||||
|
aDEUMBIGA1UECgwLRGV2ZWxvcG1lbnQxIzAhBgNVBAMMGiouejVtN3E5ZGszYWgy
|
||||||
|
djFwbHg2anUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy1+S
|
||||||
|
sbsTsWM/tpJIYPuxld0Y7gQtmhO/YgeZf/2WAUmrDOuAY0mHZvc7Q8rrQ+B0Fviz
|
||||||
|
qs04/66A9L/f2puCJ/kE5U3dRKRWR0D+mDGgYmQlvaIFiSUknauJTue5zk6WE4LW
|
||||||
|
mvacuQAQaUgxYOUWu/lbLWYNaT7ZOlXGGPRgxuikjRQRyP4kdLLPJMNTCzD+yWqH
|
||||||
|
5MLdfOWmlphhLiuAk+vUbyZ45Bi1imxYc4e5RmWfE3OHwOE4oEihSvhpIqGgqIqK
|
||||||
|
iknXL04uobi/ZfKpy45Zz2RwgRk4OTlxH0uWAnWR3h7TyKY0K2mUZrQd/SvcOhRp
|
||||||
|
ZtKdFyWgXKMXzLWVFwIDAQABo4IBHzCCARswHQYDVR0OBBYEFH12zcUUPblwagft
|
||||||
|
F5rTsvWsHuG4MB8GA1UdIwQYMBaAFH12zcUUPblwagftF5rTsvWsHuG4MA8GA1Ud
|
||||||
|
EwEB/wQFMAMBAf8wgccGA1UdEQSBvzCBvIIaKi56NW03cTlkazNhaDJ2MXBseDZq
|
||||||
|
dS5jb22CGHo1bTdxOWRrM2FoMnYxcGx4Nmp1LmNvbYIqYWRtaW4tcGFuZWwtdW5k
|
||||||
|
c28uejVtN3E5ZGszYWgydjFwbHg2anUuY29tgitzZXJ2ZXItYWRtaW4tdW5kc28u
|
||||||
|
ejVtN3E5ZGszYWgydjFwbHg2anUuY29tgithcGktc29mdHdhcmUtdW5kc28uejVt
|
||||||
|
N3E5ZGszYWgydjFwbHg2anUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQBimBut+xPO
|
||||||
|
vpnmCRqSwn4M7omqqyOOaMFxIjfKbboBbFv2ViL47HVqgNougr2GFLIAxJjjR8CM
|
||||||
|
SMp6EW7syUG/WW2ttzOjr3bWGMH3x0K61bBLdZU3vEuyBXbHPK+yyaTEa1C1kpmw
|
||||||
|
hsxB38iAePAABsIqDf77STV5t+ZvFe+1RLFaFfUIu5b39g/U8x026igtKcCjOEsI
|
||||||
|
90jn3GQs2rJHOe4+ZoSbzNntnoDakCcpfVX9exr5G5aOTycxmct1TvSFpY0Y+zvl
|
||||||
|
Oy7US0zl78BHGLFn48C1aAi6Vb8Cc6KdUOAQWOm/OJqsbxo6ymjB0T/3Cw6knvB9
|
||||||
|
L8ZdoF36eAps
|
||||||
|
-----END CERTIFICATE-----
|
||||||
38
intermediate1.cer
Normale Datei
38
intermediate1.cer
Normale Datei
@@ -0,0 +1,38 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGlTCCBH2gAwIBAgIRANJ/u8HeNZ5SFq1hSVhgmcQwDQYJKoZIhvcNAQEMBQAw
|
||||||
|
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
|
||||||
|
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
|
||||||
|
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIx
|
||||||
|
MDMyMjAwMDAwMFoXDTM4MDExODIzNTk1OVowXzELMAkGA1UEBhMCR0IxGDAWBgNV
|
||||||
|
BAoTD1NlY3RpZ28gTGltaXRlZDE2MDQGA1UEAxMtU2VjdGlnbyBQdWJsaWMgU2Vy
|
||||||
|
dmVyIEF1dGhlbnRpY2F0aW9uIFJvb3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
|
Ag8AMIICCgKCAgEAk77VNlJ12AEjoBxHQknuY7a3If3EldVIKyZ8FFMQ2nn9K7ct
|
||||||
|
pNQs+uoy3UnCub0PSD17WphUr55dMXRPB/xQId2kz2hPGxJjbSWZTCqZ80gwYfqB
|
||||||
|
fB6nCErcPiscHxhMcao1jK34bug7StnllALWiYQTqm3ITzPMUJY3kjPcX4jnn1TZ
|
||||||
|
SPCYQ9Zm/Z8XOEPFAVEL1+MjDxRdWxTnS77d9MjaAzfR1jmhIVEwg7Bt1zBOlluR
|
||||||
|
8HAkq79FgWRDDb0hOi886Z4NyyC1QifM2m+b7mQwkDnNk2WBITG1I1AzNyLjOO34
|
||||||
|
MTDMRf5i+dFdMnlCh99qzFYZQE3Oqrv5tXZJlPEn+JGlg+UGs2MOgNzgElWApjtm
|
||||||
|
tDmHLcjw0NEU6eQNTQ72XVdyxTscR1ad4tX7gWGMzE2AkDRbt9cUddzYBEifwMEo
|
||||||
|
iLTpHMqnsfFWt3tJTFnlIBWohAIp+jiUaZpJBo/NH3kUFxIMg3reH7GX7vmXeCik
|
||||||
|
yESS6X0mBaZYcpt5E9gRX67FOGI0aLKGMI74kGGeMmz1BzbNokxu7Io27fLmmRVE
|
||||||
|
cMN8vJw5wLTha/eDJSNX2RKA5UnwdQ/vjescm1QotCE8/HwK/+97a3X/ix2gGQWr
|
||||||
|
+vgrgULoOLq7+6r9PeDzyt9Ol5cp7fMYVumllqy9w5CYsuD5otSmR0N8bc8CAwEA
|
||||||
|
AaOCASAwggEcMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1Ud
|
||||||
|
DgQWBBRWc1hklfmSGrASKgRieaFAFYghSTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
|
||||||
|
AQH/BAUwAwEB/zAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEQYDVR0g
|
||||||
|
BAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRy
|
||||||
|
dXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDA1
|
||||||
|
BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVz
|
||||||
|
dC5jb20wDQYJKoZIhvcNAQEMBQADggIBADpvBIlq7bMU0cFDT/9P9+BsgCkRgQs0
|
||||||
|
S6Bf7vJSlWMHwby0VGvxCS0hrbi0K2BINZbEbsVsgpQq04431yyoVn3Hldorgq24
|
||||||
|
RldRDOOipEZDTFB9wC9HYt1thHF00XeG2C8KC1plwoEzKAIhPvefI/C3cT0CfTXJ
|
||||||
|
uFjUbKIgSwjNjw6YHtLgoy/hd5+JLUlLco/gzFX/qWbT7tEquOMYpsNKWZj8TLqP
|
||||||
|
q6zMiG4Na6feEZte6YPXGrMWlTWN341vDedc+yxQqSug79HJUQcOZs7KyDWztmae
|
||||||
|
QxsPE49UV/8XwrfZtZaYyrs4FpD94Z4Q8dzXGL8+qEJjxgcza7W6PROaClubavd1
|
||||||
|
VKPm8+aCW77u7SxpR2TFGL6kPdxsKyFijpcunR5V79sUyROfNdzjrAcFWZXK8sbb
|
||||||
|
9FlnwuVG677JLv+ZVTX5AxLvW5OB4zt5uS+zB62wJ/Wv+jXGAttSAcJec4iFgCWH
|
||||||
|
Rvdi/jJoSzRLa3nEzx6pFIzclSCnh0u1xCeLcUBypSiPga8W+6PkuoyQq8U9qs9E
|
||||||
|
oxG5NvrvlyshwUS9yvcZRGw7Ljlx4jJH/BhIPR8kIBCQj1vna9TziZOrw1Of8hDU
|
||||||
|
bHKFG9Pm8Dp2vbjz/2JH39qvxshPKVllGfq+5klPm7yZRUYTiCMAbqwNdL/nsqF2
|
||||||
|
Rnnyp58XRStJ
|
||||||
|
-----END CERTIFICATE-----
|
||||||
36
intermediate2.cer
Normale Datei
36
intermediate2.cer
Normale Datei
@@ -0,0 +1,36 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGTDCCBDSgAwIBAgIQOXpmzCdWNi4NqofKbqvjsTANBgkqhkiG9w0BAQwFADBf
|
||||||
|
MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
|
||||||
|
Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
|
||||||
|
HhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEY
|
||||||
|
MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1Ymxp
|
||||||
|
YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgUjM2MIIBojANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAY8AMIIBigKCAYEAljZf2HIz7+SPUPQCQObZYcrxLTHYdf1ZtMRe7Yeq
|
||||||
|
RPSwygz16qJ9cAWtWNTcuICc++p8Dct7zNGxCpqmEtqifO7NvuB5dEVexXn9RFFH
|
||||||
|
12Hm+NtPRQgXIFjx6MSJcNWuVO3XGE57L1mHlcQYj+g4hny90aFh2SCZCDEVkAja
|
||||||
|
EMMfYPKuCjHuuF+bzHFb/9gV8P9+ekcHENF2nR1efGWSKwnfG5RawlkaQDpRtZTm
|
||||||
|
M64TIsv/r7cyFO4nSjs1jLdXYdz5q3a4L0NoabZfbdxVb+CUEHfB0bpulZQtH1Rv
|
||||||
|
38e/lIdP7OTTIlZh6OYL6NhxP8So0/sht/4J9mqIGxRFc0/pC8suja+wcIUna0HB
|
||||||
|
pXKfXTKpzgis+zmXDL06ASJf5E4A2/m+Hp6b84sfPAwQ766rI65mh50S0Di9E3Pn
|
||||||
|
2WcaJc+PILsBmYpgtmgWTR9eV9otfKRUBfzHUHcVgarub/XluEpRlTtZudU5xbFN
|
||||||
|
xx/DgMrXLUAPaI60fZ6wA+PTAgMBAAGjggGBMIIBfTAfBgNVHSMEGDAWgBRWc1hk
|
||||||
|
lfmSGrASKgRieaFAFYghSTAdBgNVHQ4EFgQUaMASFhgOr872h6YyV6NGUV3LBycw
|
||||||
|
DgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYI
|
||||||
|
KwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdIAQUMBIwBgYEVR0gADAIBgZngQwBAgEw
|
||||||
|
VAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv
|
||||||
|
UHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290UjQ2LmNybDCBhAYIKwYBBQUH
|
||||||
|
AQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp
|
||||||
|
Z29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvblJvb3RSNDYucDdjMCMGCCsGAQUF
|
||||||
|
BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA
|
||||||
|
YtOC9Fy+TqECFw40IospI92kLGgoSZGPOSQXMBqmsGWZUQ7rux7cj1du6d9rD6C8
|
||||||
|
ze1B2eQjkrGkIL/OF1s7vSmgYVafsRoZd/IHUrkoQvX8FZwUsmPu7amgBfaY3g+d
|
||||||
|
q1x0jNGKb6I6Bzdl6LgMD9qxp+3i7GQOnd9J8LFSietY6Z4jUBzVoOoz8iAU84OF
|
||||||
|
h2HhAuiPw1ai0VnY38RTI+8kepGWVfGxfBWzwH9uIjeooIeaosVFvE8cmYUB4TSH
|
||||||
|
5dUyD0jHct2+8ceKEtIoFU/FfHq/mDaVnvcDCZXtIgitdMFQdMZaVehmObyhRdDD
|
||||||
|
4NQCs0gaI9AAgFj4L9QtkARzhQLNyRf87Kln+YU0lgCGr9HLg3rGO8q+Y4ppLsOd
|
||||||
|
unQZ6ZxPNGIfOApbPVf5hCe58EZwiWdHIMn9lPP6+F404y8NNugbQixBber+x536
|
||||||
|
WrZhFZLjEkhp7fFXf9r32rNPfb74X/U90Bdy4lzp3+X1ukh1BuMxA/EEhDoTOS3l
|
||||||
|
7ABvc7BYSQubQ2490OcdkIzUh3ZwDrakMVrbaTxUM2p24N6dB+ns2zptWCva6jzW
|
||||||
|
r8IWKIMxzxLPv5Kt3ePKcUdvkBU/smqujSczTzzSjIoR5QqQA6lN1ZRSnuHIWCvh
|
||||||
|
JEltkYnTAH41QJ6SAWO66GrrUESwN/cgZzL4JLEqz1Y=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
privkey.pem
Normale Datei
28
privkey.pem
Normale Datei
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLX5KxuxOxYz+2
|
||||||
|
kkhg+7GV3RjuBC2aE79iB5l//ZYBSasM64BjSYdm9ztDyutD4HQW+LOqzTj/roD0
|
||||||
|
v9/am4In+QTlTd1EpFZHQP6YMaBiZCW9ogWJJSSdq4lO57nOTpYTgtaa9py5ABBp
|
||||||
|
SDFg5Ra7+VstZg1pPtk6VcYY9GDG6KSNFBHI/iR0ss8kw1MLMP7Jaofkwt185aaW
|
||||||
|
mGEuK4CT69RvJnjkGLWKbFhzh7lGZZ8Tc4fA4TigSKFK+GkioaCoioqKSdcvTi6h
|
||||||
|
uL9l8qnLjlnPZHCBGTg5OXEfS5YCdZHeHtPIpjQraZRmtB39K9w6FGlm0p0XJaBc
|
||||||
|
oxfMtZUXAgMBAAECggEAIeiSfd2yP95LbjZfqQPuLQ2LLYw2yjzGqSKZPlTaoOZW
|
||||||
|
hbXyVxuYXtuT3w7DQTL4SCg5VJ4ZBdBjoesn+Lv67I1BerYL0XkRBZpZmKiVlDIc
|
||||||
|
dMzB3Yb63usN3sEWIsbJkQE8pOO/Z70R/2vRB9XKf5bo093zGHwpHefVOq3sQN2X
|
||||||
|
BWeYMnlcmxp4JM+PlTJzU0EhW85f40+MccI9UbbeEEAfuNDfAKt0DC3B653zfTpy
|
||||||
|
YBD03WKAXAPWwHu4ax3EYhYz7KSdSwdSNMTO4QV0GOWiatp/QyV8PwArNwV8gMgO
|
||||||
|
R7zWPvRuiMDavdaRdriVm334dUBtmtKnUgv/PHhvSQKBgQDs//E9O71R/L8i0f71
|
||||||
|
5rU+dWMqiNzVG1tYvJQVO1fT1MJBYLYYmmeg++OCn7AU/wvlCy+xCuTfKwh6hNv7
|
||||||
|
XSiR+r25TALeXwU4CXmDx8XkwigsNkwovh0Wa5EPsB3Tee6rl+fs6chwbqU3q2Bs
|
||||||
|
iOAkTPpbrrlSdxvWQC8LOIv5HQKBgQDbrX/Zflb7vPg2YRCvB557qsXSVmYxM0hi
|
||||||
|
BB/qrPumBSNX2tAPqKKztpPwGu0xc++VMO233xH6y8Qsw5Hab2qvJGFCGb1zKgAq
|
||||||
|
lG2JB1YYINtnzkFk5CpGwvz5jJaQvfoeM8YSbbExVIaeCIn+IMXpi5p8+XdV72Iu
|
||||||
|
RhPqpM3kwwKBgQC18hO458kDTV9Lkx4CmDiil6om+GVY8aSiLjwdRK67gIYVfPKv
|
||||||
|
VrKiA175ZDDhHaB7Gahmaa+lqLrcnGzpv+4qi+3leHZnU1mFWLjCM7c4VNpUfubf
|
||||||
|
DHz2PmRiP9nWBbD2aStzVVM9BaSvZVEkYbx6AeLeSfgaWDi1thanraS//QKBgQCs
|
||||||
|
mJWBqWzoHuGZwAueqUrQeS0yBGYIM/Wj5P+6nyyclR7esPGVy/YBYuq61D0WBLPx
|
||||||
|
MN8k/yOeO6inTwTybWWRs/CiQZ0CtbYpvjKNXfE7xdz8oyXoAghhTmP6IYZOtKSm
|
||||||
|
RCFUa1CzpGicE7NvsgotY1z+4fXr08f8+Vw+mDuYhwKBgANotZFPsaWbwtiYtmEY
|
||||||
|
buN4TpL0AlxoFVlV+ZI5GX7NGT3pTBn/sneRW9MRmAqM2Ey9O96ISlZsI2RVIQ6P
|
||||||
|
EU2BwIY0Ojy5UswQit0R3QHNL6v0lXRb5IVlnAvIW3N2SpofdDyGNnnWsCzUOqNQ
|
||||||
|
ktCuQZblIfgpmCpeSe2QF1pX
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
38
reset-to-dhcp.ps1
Normale Datei
38
reset-to-dhcp.ps1
Normale Datei
@@ -0,0 +1,38 @@
|
|||||||
|
# PowerShell Script zum Zurücksetzen auf DHCP
|
||||||
|
# MUSS ALS ADMINISTRATOR AUSGEFÜHRT WERDEN!
|
||||||
|
|
||||||
|
Write-Host "=== Zurücksetzen auf DHCP (automatische IP) ===" -ForegroundColor Green
|
||||||
|
|
||||||
|
# Aktive WLAN-Adapter finden
|
||||||
|
$adapters = Get-NetAdapter | Where-Object {$_.Status -eq 'Up' -and ($_.Name -like '*WLAN*' -or $_.Name -like '*Wi-Fi*')}
|
||||||
|
|
||||||
|
if ($adapters.Count -eq 0) {
|
||||||
|
Write-Host "Kein aktiver WLAN-Adapter gefunden!" -ForegroundColor Red
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Den ersten aktiven WLAN-Adapter nehmen
|
||||||
|
$adapter = $adapters[0]
|
||||||
|
Write-Host "`nSetze Adapter zurück auf DHCP: $($adapter.Name)" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Statische IP entfernen
|
||||||
|
Write-Host "`nEntferne statische IP-Konfiguration..." -ForegroundColor Yellow
|
||||||
|
Remove-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
Remove-NetRoute -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
# DHCP aktivieren
|
||||||
|
Write-Host "`nAktiviere DHCP..." -ForegroundColor Green
|
||||||
|
Set-NetIPInterface -InterfaceIndex $adapter.InterfaceIndex -Dhcp Enabled
|
||||||
|
|
||||||
|
# DNS auf automatisch setzen
|
||||||
|
Write-Host "`nSetze DNS auf automatisch..." -ForegroundColor Green
|
||||||
|
Set-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex -ResetServerAddresses
|
||||||
|
|
||||||
|
Write-Host "`n✅ Fertig! Der Adapter nutzt jetzt wieder DHCP (automatische IP-Vergabe)" -ForegroundColor Green
|
||||||
|
|
||||||
|
# Kurz warten
|
||||||
|
Start-Sleep -Seconds 3
|
||||||
|
|
||||||
|
# Neue IP anzeigen
|
||||||
|
Write-Host "`nNeue IP-Adresse:" -ForegroundColor Yellow
|
||||||
|
Get-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 | Format-Table IPAddress, PrefixLength
|
||||||
54
set-static-ip.ps1
Normale Datei
54
set-static-ip.ps1
Normale Datei
@@ -0,0 +1,54 @@
|
|||||||
|
# PowerShell Script für statische IP-Konfiguration
|
||||||
|
# MUSS ALS ADMINISTRATOR AUSGEFÜHRT WERDEN!
|
||||||
|
|
||||||
|
Write-Host "=== Statische IP 192.168.178.88 einrichten ===" -ForegroundColor Green
|
||||||
|
|
||||||
|
# Aktive WLAN-Adapter finden
|
||||||
|
$adapters = Get-NetAdapter | Where-Object {$_.Status -eq 'Up' -and ($_.Name -like '*WLAN*' -or $_.Name -like '*Wi-Fi*')}
|
||||||
|
|
||||||
|
if ($adapters.Count -eq 0) {
|
||||||
|
Write-Host "Kein aktiver WLAN-Adapter gefunden!" -ForegroundColor Red
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`nGefundene WLAN-Adapter:" -ForegroundColor Yellow
|
||||||
|
$adapters | Format-Table Name, Status, InterfaceIndex
|
||||||
|
|
||||||
|
# Den ersten aktiven WLAN-Adapter nehmen
|
||||||
|
$adapter = $adapters[0]
|
||||||
|
Write-Host "`nKonfiguriere Adapter: $($adapter.Name)" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Aktuelle Konfiguration anzeigen
|
||||||
|
Write-Host "`nAktuelle IP-Konfiguration:" -ForegroundColor Yellow
|
||||||
|
Get-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 | Format-Table IPAddress, PrefixLength
|
||||||
|
|
||||||
|
# Alte IP-Konfiguration entfernen
|
||||||
|
Write-Host "`nEntferne alte IP-Konfiguration..." -ForegroundColor Yellow
|
||||||
|
Remove-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
Remove-NetRoute -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 -Confirm:$false -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
# Neue statische IP setzen
|
||||||
|
Write-Host "`nSetze neue statische IP: 192.168.178.88" -ForegroundColor Green
|
||||||
|
New-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -IPAddress "192.168.178.88" -PrefixLength 24 -DefaultGateway "192.168.178.1" -AddressFamily IPv4
|
||||||
|
|
||||||
|
# DNS-Server setzen (FRITZ!Box und Google)
|
||||||
|
Write-Host "`nSetze DNS-Server..." -ForegroundColor Green
|
||||||
|
Set-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex -ServerAddresses "192.168.178.1", "8.8.8.8"
|
||||||
|
|
||||||
|
# Neue Konfiguration anzeigen
|
||||||
|
Write-Host "`nNeue IP-Konfiguration:" -ForegroundColor Green
|
||||||
|
Get-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 | Format-Table IPAddress, PrefixLength
|
||||||
|
Get-NetRoute -InterfaceIndex $adapter.InterfaceIndex -DestinationPrefix "0.0.0.0/0" | Format-Table DestinationPrefix, NextHop
|
||||||
|
|
||||||
|
Write-Host "`n✅ Fertig! Ihre IP ist jetzt: 192.168.178.88" -ForegroundColor Green
|
||||||
|
Write-Host "Die FRITZ!Box Port-Weiterleitung sollte jetzt funktionieren!" -ForegroundColor Green
|
||||||
|
|
||||||
|
# Test
|
||||||
|
Write-Host "`nTeste Internetverbindung..." -ForegroundColor Yellow
|
||||||
|
Test-NetConnection google.com -Port 80 -InformationLevel Quiet
|
||||||
|
|
||||||
|
if ($?) {
|
||||||
|
Write-Host "✅ Internetverbindung funktioniert!" -ForegroundColor Green
|
||||||
|
} else {
|
||||||
|
Write-Host "❌ Keine Internetverbindung - prüfen Sie die Einstellungen!" -ForegroundColor Red
|
||||||
|
}
|
||||||
16
setup-firewall.ps1
Normale Datei
16
setup-firewall.ps1
Normale Datei
@@ -0,0 +1,16 @@
|
|||||||
|
# PowerShell-Script für Windows Firewall Konfiguration
|
||||||
|
# Als Administrator ausführen!
|
||||||
|
|
||||||
|
Write-Host "Konfiguriere Windows Firewall für Docker..." -ForegroundColor Green
|
||||||
|
|
||||||
|
# Firewall-Regeln für HTTP und HTTPS
|
||||||
|
New-NetFirewallRule -DisplayName "Docker HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow -ErrorAction SilentlyContinue
|
||||||
|
New-NetFirewallRule -DisplayName "Docker HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
Write-Host "Firewall-Regeln erstellt." -ForegroundColor Green
|
||||||
|
|
||||||
|
# Docker-Service neustarten (optional)
|
||||||
|
Write-Host "Starte Docker-Service neu..." -ForegroundColor Yellow
|
||||||
|
Restart-Service docker
|
||||||
|
|
||||||
|
Write-Host "Fertig! Ports 80 und 443 sind jetzt offen." -ForegroundColor Green
|
||||||
@@ -48,19 +48,35 @@ services:
|
|||||||
context: ../v2_adminpanel
|
context: ../v2_adminpanel
|
||||||
container_name: admin-panel
|
container_name: admin-panel
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
# Port-Mapping entfernt - nur über nginx erreichbar
|
||||||
- "443:443" # Admin-Panel über HTTPS erreichbar
|
|
||||||
env_file: .env
|
env_file: .env
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
networks:
|
networks:
|
||||||
- internal_net
|
- internal_net
|
||||||
|
volumes:
|
||||||
|
# Backup-Verzeichnis
|
||||||
|
- ../backups:/app/backups
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpus: '2'
|
cpus: '2'
|
||||||
memory: 4g
|
memory: 4g
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
build:
|
||||||
|
context: ../v2_nginx
|
||||||
|
container_name: nginx-proxy
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
depends_on:
|
||||||
|
- admin-panel
|
||||||
|
- license-server
|
||||||
|
networks:
|
||||||
|
- internal_net
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
internal_net:
|
internal_net:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|||||||
21
v2_nginx/Dockerfile
Normale Datei
21
v2_nginx/Dockerfile
Normale Datei
@@ -0,0 +1,21 @@
|
|||||||
|
FROM nginx:alpine
|
||||||
|
|
||||||
|
# SSL-Verzeichnis erstellen
|
||||||
|
RUN mkdir -p /etc/nginx/ssl
|
||||||
|
|
||||||
|
# Default config entfernen
|
||||||
|
RUN rm -f /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# Nginx-Konfiguration kopieren
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
# SSL-Zertifikate kopieren
|
||||||
|
COPY ssl/fullchain.pem /etc/nginx/ssl/
|
||||||
|
COPY ssl/privkey.pem /etc/nginx/ssl/
|
||||||
|
|
||||||
|
# Berechtigungen setzen
|
||||||
|
RUN chmod 600 /etc/nginx/ssl/privkey.pem
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
|
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
21
v2_nginx/Dockerfile.letsencrypt
Normale Datei
21
v2_nginx/Dockerfile.letsencrypt
Normale Datei
@@ -0,0 +1,21 @@
|
|||||||
|
FROM nginx:alpine
|
||||||
|
|
||||||
|
# Certbot für Let's Encrypt installieren
|
||||||
|
RUN apk add --no-cache certbot certbot-nginx
|
||||||
|
|
||||||
|
# SSL-Verzeichnis erstellen
|
||||||
|
RUN mkdir -p /etc/nginx/ssl
|
||||||
|
|
||||||
|
# Default config entfernen
|
||||||
|
RUN rm -f /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# Nginx-Konfiguration kopieren
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
# Entrypoint für Certbot
|
||||||
|
COPY entrypoint-letsencrypt.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
47
v2_nginx/entrypoint-letsencrypt.sh
Normale Datei
47
v2_nginx/entrypoint-letsencrypt.sh
Normale Datei
@@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Temporäre Nginx config für Let's Encrypt Challenge
|
||||||
|
cat > /etc/nginx/conf.d/default.conf << EOF
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
|
||||||
|
|
||||||
|
location /.well-known/acme-challenge/ {
|
||||||
|
root /var/www/certbot;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
return 301 https://\$host\$request_uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Nginx starten
|
||||||
|
nginx
|
||||||
|
|
||||||
|
# Let's Encrypt Zertifikate holen
|
||||||
|
echo "Requesting Let's Encrypt certificates..."
|
||||||
|
certbot certonly --webroot -w /var/www/certbot \
|
||||||
|
-d admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com \
|
||||||
|
-d api-software-undso.z5m7q9dk3ah2v1plx6ju.com \
|
||||||
|
--non-interactive \
|
||||||
|
--agree-tos \
|
||||||
|
--email admin@z5m7q9dk3ah2v1plx6ju.com \
|
||||||
|
--no-eff-email
|
||||||
|
|
||||||
|
# Prüfen ob erfolgreich
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Certificates obtained successfully!"
|
||||||
|
|
||||||
|
# Nginx stoppen
|
||||||
|
nginx -s stop
|
||||||
|
|
||||||
|
# Kopiere die echte config
|
||||||
|
cp /etc/nginx/nginx.conf.real /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
# Nginx mit SSL starten
|
||||||
|
nginx -g "daemon off;"
|
||||||
|
else
|
||||||
|
echo "Failed to obtain certificates"
|
||||||
|
nginx -g "daemon off;"
|
||||||
|
fi
|
||||||
30
v2_nginx/entrypoint.sh
Normale Datei
30
v2_nginx/entrypoint.sh
Normale Datei
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Nginx im Hintergrund starten
|
||||||
|
nginx
|
||||||
|
|
||||||
|
# Warte bis Nginx läuft
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Versuche Let's Encrypt Zertifikate zu holen (nur in Produktion)
|
||||||
|
if [ "$LETSENCRYPT_ENABLED" = "true" ]; then
|
||||||
|
echo "Requesting Let's Encrypt certificates..."
|
||||||
|
|
||||||
|
# Admin Panel Zertifikat
|
||||||
|
certbot --nginx -d admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com \
|
||||||
|
--non-interactive --agree-tos --email ${LETSENCRYPT_EMAIL} \
|
||||||
|
--redirect --expand --no-eff-email
|
||||||
|
|
||||||
|
# API Server Zertifikat
|
||||||
|
certbot --nginx -d api-software-undso.z5m7q9dk3ah2v1plx6ju.com \
|
||||||
|
--non-interactive --agree-tos --email ${LETSENCRYPT_EMAIL} \
|
||||||
|
--redirect --expand --no-eff-email
|
||||||
|
|
||||||
|
# Auto-renewal einrichten
|
||||||
|
echo "0 0,12 * * * root certbot renew --quiet" >> /etc/crontabs/root
|
||||||
|
crond
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Nginx im Vordergrund halten
|
||||||
|
nginx -s stop
|
||||||
|
nginx -g "daemon off;"
|
||||||
71
v2_nginx/nginx.conf
Normale Datei
71
v2_nginx/nginx.conf
Normale Datei
@@ -0,0 +1,71 @@
|
|||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
# SSL-Einstellungen
|
||||||
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
# Admin Panel
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com;
|
||||||
|
|
||||||
|
# Redirect HTTP to HTTPS
|
||||||
|
return 301 https://$server_name$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com;
|
||||||
|
|
||||||
|
# SSL-Zertifikate (echte Zertifikate)
|
||||||
|
ssl_certificate /etc/nginx/ssl/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
|
||||||
|
|
||||||
|
# Proxy-Einstellungen
|
||||||
|
location / {
|
||||||
|
proxy_pass https://admin-panel:443;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
# WebSocket support (falls benötigt)
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
|
||||||
|
# SSL-Verifizierung für selbstsignierte Zertifikate deaktivieren
|
||||||
|
proxy_ssl_verify off;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# API Server (für später)
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
|
||||||
|
|
||||||
|
return 301 https://$server_name$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name api-software-undso.z5m7q9dk3ah2v1plx6ju.com;
|
||||||
|
|
||||||
|
ssl_certificate /etc/nginx/ssl/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass https://license-server:8443;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
|
||||||
|
proxy_ssl_verify off;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
112
v2_nginx/ssl/fullchain.pem
Normale Datei
112
v2_nginx/ssl/fullchain.pem
Normale Datei
@@ -0,0 +1,112 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGqDCCBRCgAwIBAgIRAP++iWUqjw7yOtqdDe3DXdcwDQYJKoZIhvcNAQEMBQAw
|
||||||
|
YDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
|
||||||
|
AxMuU2VjdGlnbyBQdWJsaWMgU2VydmVyIEF1dGhlbnRpY2F0aW9uIENBIERWIFIz
|
||||||
|
NjAeFw0yNTA2MDcwMDAwMDBaFw0yNjA2MDcyMzU5NTlaMCUxIzAhBgNVBAMMGiou
|
||||||
|
ejVtN3E5ZGszYWgydjFwbHg2anUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||||
|
MIIBCgKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w90MkY
|
||||||
|
/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G7+EJ
|
||||||
|
lYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwSqSQ9
|
||||||
|
SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLcpW6k
|
||||||
|
wkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+XrU4Ct
|
||||||
|
iETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABo4IDFjCCAxIwHwYDVR0jBBgw
|
||||||
|
FoAUaMASFhgOr872h6YyV6NGUV3LBycwHQYDVR0OBBYEFD2tx0mT4AtPU2ISB5ui
|
||||||
|
xdaBPrXKMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQG
|
||||||
|
CCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIHMCUw
|
||||||
|
IwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATCB
|
||||||
|
hAYIKwYBBQUHAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28u
|
||||||
|
Y29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvbkNBRFZSMzYuY3J0
|
||||||
|
MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTCCAX4GCisGAQQB
|
||||||
|
1nkCBAIEggFuBIIBagFoAHcAlpdkv1VYl633Q4doNwhCd+nwOtX2pPM2bkakPw/K
|
||||||
|
qcYAAAGXSz80dwAABAMASDBGAiEAwqN1tMQQth342Rir/V/0PdCs2MH0OmuoT2xZ
|
||||||
|
8tiwaikCIQCnKukR44Tt6ZJaZ+hcleqT77ug7XRIXpgEtei6avNbLgB2ABmG1Mco
|
||||||
|
qm/+ugNveCpNAZGqzi1yMQ+uzl1wQS0lTMfUAAABl0s/Mm4AAAQDAEcwRQIgEifW
|
||||||
|
JKtue9T6SyDo21oG3kX3BWzFS3b+EA0aBpe7+8YCIQC8dXbuLYzaOinK7JDtLwWT
|
||||||
|
QSveqzYirRlHT2E9OswywQB1AA5XlLzzrqk+MxssmQez95Dfm8I9cTIl3SGpJaxh
|
||||||
|
xU4hAAABl0s/MrwAAAQDAEYwRAIgK52ai/UeJMdBo/aSkvlm6jLmVIHN4/IiidX+
|
||||||
|
AEP5A5UCIGCLtmAlmj+G3m+Qci2ex6iwW/JkpeSTCns2gCvYhcNsMD8GA1UdEQQ4
|
||||||
|
MDaCGiouejVtN3E5ZGszYWgydjFwbHg2anUuY29tghh6NW03cTlkazNhaDJ2MXBs
|
||||||
|
eDZqdS5jb20wDQYJKoZIhvcNAQEMBQADggGBAC/vgQ15loW1Sb2gEPc00aHzxL0S
|
||||||
|
QrBFyyJAhYAu1bJRnDVZTuRsrheyKJgZJUSRUMv9j7Row4EcclNRKjzdCCK0K7wv
|
||||||
|
HFK5O1npeC0WFIKu+Wescy/a0rxXV6vSadtE/2R5NI4gZW1KW7n8+g5lcB1bqBth
|
||||||
|
JuiUKtddMCi/d04UQOasJ35OK61yHi893RnVpfs52wNik++PWPDvVahdCLMqQ6KY
|
||||||
|
SngLKlmIfuYDfTmwftTJsRGnTMsw1lUI+L9D4MeqcYmakWUcqD/v3SyijcL/M7ag
|
||||||
|
lkZoyQPy8qd/Kjgoh+hs1vscU6jotP40ZhSnCBZZZ9bw7h7RvhQY6uOgLIwKfjRG
|
||||||
|
NXbG4FkQBPLhkLwFmGnC/aZui1Eholi9h1Rz4cFZ5VDqdjsN/YIjpH/t2LHMh9Lu
|
||||||
|
njibo1dOyQqNSdILZfUGo/kii5ZMI2+TRyOZOACvbLU9mZmyGjXS4l5tc4PRhjUE
|
||||||
|
2V3Apslo+pviTCIinLPng15mzTOQxlUokLf5yg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGTDCCBDSgAwIBAgIQOXpmzCdWNi4NqofKbqvjsTANBgkqhkiG9w0BAQwFADBf
|
||||||
|
MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
|
||||||
|
Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
|
||||||
|
HhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEY
|
||||||
|
MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1Ymxp
|
||||||
|
YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgUjM2MIIBojANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAY8AMIIBigKCAYEAljZf2HIz7+SPUPQCQObZYcrxLTHYdf1ZtMRe7Yeq
|
||||||
|
RPSwygz16qJ9cAWtWNTcuICc++p8Dct7zNGxCpqmEtqifO7NvuB5dEVexXn9RFFH
|
||||||
|
12Hm+NtPRQgXIFjx6MSJcNWuVO3XGE57L1mHlcQYj+g4hny90aFh2SCZCDEVkAja
|
||||||
|
EMMfYPKuCjHuuF+bzHFb/9gV8P9+ekcHENF2nR1efGWSKwnfG5RawlkaQDpRtZTm
|
||||||
|
M64TIsv/r7cyFO4nSjs1jLdXYdz5q3a4L0NoabZfbdxVb+CUEHfB0bpulZQtH1Rv
|
||||||
|
38e/lIdP7OTTIlZh6OYL6NhxP8So0/sht/4J9mqIGxRFc0/pC8suja+wcIUna0HB
|
||||||
|
pXKfXTKpzgis+zmXDL06ASJf5E4A2/m+Hp6b84sfPAwQ766rI65mh50S0Di9E3Pn
|
||||||
|
2WcaJc+PILsBmYpgtmgWTR9eV9otfKRUBfzHUHcVgarub/XluEpRlTtZudU5xbFN
|
||||||
|
xx/DgMrXLUAPaI60fZ6wA+PTAgMBAAGjggGBMIIBfTAfBgNVHSMEGDAWgBRWc1hk
|
||||||
|
lfmSGrASKgRieaFAFYghSTAdBgNVHQ4EFgQUaMASFhgOr872h6YyV6NGUV3LBycw
|
||||||
|
DgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYI
|
||||||
|
KwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdIAQUMBIwBgYEVR0gADAIBgZngQwBAgEw
|
||||||
|
VAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv
|
||||||
|
UHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290UjQ2LmNybDCBhAYIKwYBBQUH
|
||||||
|
AQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp
|
||||||
|
Z29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvblJvb3RSNDYucDdjMCMGCCsGAQUF
|
||||||
|
BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA
|
||||||
|
YtOC9Fy+TqECFw40IospI92kLGgoSZGPOSQXMBqmsGWZUQ7rux7cj1du6d9rD6C8
|
||||||
|
ze1B2eQjkrGkIL/OF1s7vSmgYVafsRoZd/IHUrkoQvX8FZwUsmPu7amgBfaY3g+d
|
||||||
|
q1x0jNGKb6I6Bzdl6LgMD9qxp+3i7GQOnd9J8LFSietY6Z4jUBzVoOoz8iAU84OF
|
||||||
|
h2HhAuiPw1ai0VnY38RTI+8kepGWVfGxfBWzwH9uIjeooIeaosVFvE8cmYUB4TSH
|
||||||
|
5dUyD0jHct2+8ceKEtIoFU/FfHq/mDaVnvcDCZXtIgitdMFQdMZaVehmObyhRdDD
|
||||||
|
4NQCs0gaI9AAgFj4L9QtkARzhQLNyRf87Kln+YU0lgCGr9HLg3rGO8q+Y4ppLsOd
|
||||||
|
unQZ6ZxPNGIfOApbPVf5hCe58EZwiWdHIMn9lPP6+F404y8NNugbQixBber+x536
|
||||||
|
WrZhFZLjEkhp7fFXf9r32rNPfb74X/U90Bdy4lzp3+X1ukh1BuMxA/EEhDoTOS3l
|
||||||
|
7ABvc7BYSQubQ2490OcdkIzUh3ZwDrakMVrbaTxUM2p24N6dB+ns2zptWCva6jzW
|
||||||
|
r8IWKIMxzxLPv5Kt3ePKcUdvkBU/smqujSczTzzSjIoR5QqQA6lN1ZRSnuHIWCvh
|
||||||
|
JEltkYnTAH41QJ6SAWO66GrrUESwN/cgZzL4JLEqz1Y=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGlTCCBH2gAwIBAgIRANJ/u8HeNZ5SFq1hSVhgmcQwDQYJKoZIhvcNAQEMBQAw
|
||||||
|
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
|
||||||
|
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
|
||||||
|
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIx
|
||||||
|
MDMyMjAwMDAwMFoXDTM4MDExODIzNTk1OVowXzELMAkGA1UEBhMCR0IxGDAWBgNV
|
||||||
|
BAoTD1NlY3RpZ28gTGltaXRlZDE2MDQGA1UEAxMtU2VjdGlnbyBQdWJsaWMgU2Vy
|
||||||
|
dmVyIEF1dGhlbnRpY2F0aW9uIFJvb3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
|
Ag8AMIICCgKCAgEAk77VNlJ12AEjoBxHQknuY7a3If3EldVIKyZ8FFMQ2nn9K7ct
|
||||||
|
pNQs+uoy3UnCub0PSD17WphUr55dMXRPB/xQId2kz2hPGxJjbSWZTCqZ80gwYfqB
|
||||||
|
fB6nCErcPiscHxhMcao1jK34bug7StnllALWiYQTqm3ITzPMUJY3kjPcX4jnn1TZ
|
||||||
|
SPCYQ9Zm/Z8XOEPFAVEL1+MjDxRdWxTnS77d9MjaAzfR1jmhIVEwg7Bt1zBOlluR
|
||||||
|
8HAkq79FgWRDDb0hOi886Z4NyyC1QifM2m+b7mQwkDnNk2WBITG1I1AzNyLjOO34
|
||||||
|
MTDMRf5i+dFdMnlCh99qzFYZQE3Oqrv5tXZJlPEn+JGlg+UGs2MOgNzgElWApjtm
|
||||||
|
tDmHLcjw0NEU6eQNTQ72XVdyxTscR1ad4tX7gWGMzE2AkDRbt9cUddzYBEifwMEo
|
||||||
|
iLTpHMqnsfFWt3tJTFnlIBWohAIp+jiUaZpJBo/NH3kUFxIMg3reH7GX7vmXeCik
|
||||||
|
yESS6X0mBaZYcpt5E9gRX67FOGI0aLKGMI74kGGeMmz1BzbNokxu7Io27fLmmRVE
|
||||||
|
cMN8vJw5wLTha/eDJSNX2RKA5UnwdQ/vjescm1QotCE8/HwK/+97a3X/ix2gGQWr
|
||||||
|
+vgrgULoOLq7+6r9PeDzyt9Ol5cp7fMYVumllqy9w5CYsuD5otSmR0N8bc8CAwEA
|
||||||
|
AaOCASAwggEcMB8GA1UdIwQYMBaAFFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1Ud
|
||||||
|
DgQWBBRWc1hklfmSGrASKgRieaFAFYghSTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
|
||||||
|
AQH/BAUwAwEB/zAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEQYDVR0g
|
||||||
|
BAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRy
|
||||||
|
dXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDA1
|
||||||
|
BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVz
|
||||||
|
dC5jb20wDQYJKoZIhvcNAQEMBQADggIBADpvBIlq7bMU0cFDT/9P9+BsgCkRgQs0
|
||||||
|
S6Bf7vJSlWMHwby0VGvxCS0hrbi0K2BINZbEbsVsgpQq04431yyoVn3Hldorgq24
|
||||||
|
RldRDOOipEZDTFB9wC9HYt1thHF00XeG2C8KC1plwoEzKAIhPvefI/C3cT0CfTXJ
|
||||||
|
uFjUbKIgSwjNjw6YHtLgoy/hd5+JLUlLco/gzFX/qWbT7tEquOMYpsNKWZj8TLqP
|
||||||
|
q6zMiG4Na6feEZte6YPXGrMWlTWN341vDedc+yxQqSug79HJUQcOZs7KyDWztmae
|
||||||
|
QxsPE49UV/8XwrfZtZaYyrs4FpD94Z4Q8dzXGL8+qEJjxgcza7W6PROaClubavd1
|
||||||
|
VKPm8+aCW77u7SxpR2TFGL6kPdxsKyFijpcunR5V79sUyROfNdzjrAcFWZXK8sbb
|
||||||
|
9FlnwuVG677JLv+ZVTX5AxLvW5OB4zt5uS+zB62wJ/Wv+jXGAttSAcJec4iFgCWH
|
||||||
|
Rvdi/jJoSzRLa3nEzx6pFIzclSCnh0u1xCeLcUBypSiPga8W+6PkuoyQq8U9qs9E
|
||||||
|
oxG5NvrvlyshwUS9yvcZRGw7Ljlx4jJH/BhIPR8kIBCQj1vna9TziZOrw1Of8hDU
|
||||||
|
bHKFG9Pm8Dp2vbjz/2JH39qvxshPKVllGfq+5klPm7yZRUYTiCMAbqwNdL/nsqF2
|
||||||
|
Rnnyp58XRStJ
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
v2_nginx/ssl/privkey.pem
Normale Datei
27
v2_nginx/ssl/privkey.pem
Normale Datei
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w9
|
||||||
|
0MkY/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G
|
||||||
|
7+EJlYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwS
|
||||||
|
qSQ9SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLc
|
||||||
|
pW6kwkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+Xr
|
||||||
|
U4CtiETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABAoIBADQVXYq7q9B6dTO0
|
||||||
|
Z/oA974Z4lsK6aQfK4Z7J2OIenLeky3fxAVNcpW66hGzDSl6KCYnZmCGA6U3qF27
|
||||||
|
uFAkq+eqaBhaqZu2569LtCjy7PK6LYFAgU5ROty5QJHgTcKNmXVne4iBjywx6QRC
|
||||||
|
h8eH0VnZisTNZjZkZngFSVT0W2M8XZjzXBkAH448KhRssMLB5WzJ/jToWdTqA/zg
|
||||||
|
M4dLnhSWQfgrZyzI1TA8rUu3v3UAdd37g8KCnq9+7Vtfr0rEe6K5c3JJIwKJWcXv
|
||||||
|
9GM6kC82otpHFGVXjZC040nESyeWUESaHphO3UUlQStgmUak3Bav0mniV/+6pCCq
|
||||||
|
DZL5nQECgYEA4SpSXfrD6OoJhcjT5fqBqEg6wKB8IDfy05zNqAvg5VKDylG1x+ir
|
||||||
|
umXD6znDmMSdODjHpIJR+El1Qp2DbRkDdJ3x3TTDclqFA9p7zcLBmS2FTnEfXX6o
|
||||||
|
R3M9LgkDNdqVgyzEK3e9LNZi6xCSMrRp/32eRGJqqs+KEDydBvj4eA8CgYEAwbtL
|
||||||
|
8QwSuZqEubRsz4f2sJqG4wODxl6jenYRPLXrL9BpLzzGsw460UKjaUtyzBYeJoBm
|
||||||
|
Fc+bBcyzMt6vsarzlyXpmEfDsf3+f1/l4MbcUoW3YWmrPdsQ8JuqCheRbl84h5lT
|
||||||
|
MOaiGjPlK7hnIxlq+mcnn6hnmUuObUCuGHHQeCcCgYBMQVwBzfJZSCGPeHMi+NK+
|
||||||
|
Xi/fmrpO4wPO3NTda6BvqaFOfJu2pzq5dsuCN17htvyT1M7wDN6b2qzmsZeX9Bey
|
||||||
|
f+cwhjUG3lcb9ftltOaB7OOvrCn2LPXqtMFsfMrkizGFajzJh9S+gaCggU0x9N3N
|
||||||
|
FArsl/QOAxl75Ds96EWlywKBgCZH8kuhTRnr1Io1gsLHZRGklz7IdQN/s+IA7osG
|
||||||
|
j4CVOBOjeMfs6eZruoqV5As7251UBdgNe957gnVs117OHvAhB7WViK/lNqLIuk3e
|
||||||
|
Pa74yTGwhavlW8WPnNv9qDkdC7iPrYaeLC3tTz2CZK7k2OS9+XBtAHukGHKyMzSV
|
||||||
|
WNJFAoGAMO81Vw+bw0c4twBhRvQhpXsXT5gCiDxtS+I+9neXcmEo0JvB+JM96j7I
|
||||||
|
UNKGFVcx22LgLIJb+77Euq42x8TpLIbnxCbLsT2GKxqqrB0z+YSixXrNotqV8/FB
|
||||||
|
EYo1D+bSB7wnFbLRh4dKJ8rFAu7MSt5/KH9qRHGNtDFLETxAvmE=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
38
z5m7q9dk3ah2v1plx6ju.com_ssl_certificate.cer
Normale Datei
38
z5m7q9dk3ah2v1plx6ju.com_ssl_certificate.cer
Normale Datei
@@ -0,0 +1,38 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGqDCCBRCgAwIBAgIRAP++iWUqjw7yOtqdDe3DXdcwDQYJKoZIhvcNAQEMBQAw
|
||||||
|
YDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
|
||||||
|
AxMuU2VjdGlnbyBQdWJsaWMgU2VydmVyIEF1dGhlbnRpY2F0aW9uIENBIERWIFIz
|
||||||
|
NjAeFw0yNTA2MDcwMDAwMDBaFw0yNjA2MDcyMzU5NTlaMCUxIzAhBgNVBAMMGiou
|
||||||
|
ejVtN3E5ZGszYWgydjFwbHg2anUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||||
|
MIIBCgKCAQEAqmWkzm5LZrm74xZv04oKnuVso1bBn5n2qp2fECbS9N6LM1w90MkY
|
||||||
|
/H3z5JBX4QN/L6Lrp2rJwPZb4JA7Ci9jH11w53+duuUNkw8s1sl7KjZkis/G7+EJ
|
||||||
|
lYWwzodbOzzhxsJ3NSAzS0KFMM/l9L+0XcmrU7vYyiegq3+bvBXiCh/osKwSqSQ9
|
||||||
|
SGLNMkw5y+jpbmdnGkTKvraFXpREIx2IDYLv7R+kKwqO10By475OhnzwsnLcpW6k
|
||||||
|
wkst2Mm/nV4unhhEJ2xseCkWpNTulAgV8k1GkBTQQ2Ja7JVG1QXHI1Tj2+XrU4Ct
|
||||||
|
iETl7JMogO0jjJfL1YPFxKMsDJsMkVFSSQIDAQABo4IDFjCCAxIwHwYDVR0jBBgw
|
||||||
|
FoAUaMASFhgOr872h6YyV6NGUV3LBycwHQYDVR0OBBYEFD2tx0mT4AtPU2ISB5ui
|
||||||
|
xdaBPrXKMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQG
|
||||||
|
CCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIHMCUw
|
||||||
|
IwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATCB
|
||||||
|
hAYIKwYBBQUHAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28u
|
||||||
|
Y29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvbkNBRFZSMzYuY3J0
|
||||||
|
MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTCCAX4GCisGAQQB
|
||||||
|
1nkCBAIEggFuBIIBagFoAHcAlpdkv1VYl633Q4doNwhCd+nwOtX2pPM2bkakPw/K
|
||||||
|
qcYAAAGXSz80dwAABAMASDBGAiEAwqN1tMQQth342Rir/V/0PdCs2MH0OmuoT2xZ
|
||||||
|
8tiwaikCIQCnKukR44Tt6ZJaZ+hcleqT77ug7XRIXpgEtei6avNbLgB2ABmG1Mco
|
||||||
|
qm/+ugNveCpNAZGqzi1yMQ+uzl1wQS0lTMfUAAABl0s/Mm4AAAQDAEcwRQIgEifW
|
||||||
|
JKtue9T6SyDo21oG3kX3BWzFS3b+EA0aBpe7+8YCIQC8dXbuLYzaOinK7JDtLwWT
|
||||||
|
QSveqzYirRlHT2E9OswywQB1AA5XlLzzrqk+MxssmQez95Dfm8I9cTIl3SGpJaxh
|
||||||
|
xU4hAAABl0s/MrwAAAQDAEYwRAIgK52ai/UeJMdBo/aSkvlm6jLmVIHN4/IiidX+
|
||||||
|
AEP5A5UCIGCLtmAlmj+G3m+Qci2ex6iwW/JkpeSTCns2gCvYhcNsMD8GA1UdEQQ4
|
||||||
|
MDaCGiouejVtN3E5ZGszYWgydjFwbHg2anUuY29tghh6NW03cTlkazNhaDJ2MXBs
|
||||||
|
eDZqdS5jb20wDQYJKoZIhvcNAQEMBQADggGBAC/vgQ15loW1Sb2gEPc00aHzxL0S
|
||||||
|
QrBFyyJAhYAu1bJRnDVZTuRsrheyKJgZJUSRUMv9j7Row4EcclNRKjzdCCK0K7wv
|
||||||
|
HFK5O1npeC0WFIKu+Wescy/a0rxXV6vSadtE/2R5NI4gZW1KW7n8+g5lcB1bqBth
|
||||||
|
JuiUKtddMCi/d04UQOasJ35OK61yHi893RnVpfs52wNik++PWPDvVahdCLMqQ6KY
|
||||||
|
SngLKlmIfuYDfTmwftTJsRGnTMsw1lUI+L9D4MeqcYmakWUcqD/v3SyijcL/M7ag
|
||||||
|
lkZoyQPy8qd/Kjgoh+hs1vscU6jotP40ZhSnCBZZZ9bw7h7RvhQY6uOgLIwKfjRG
|
||||||
|
NXbG4FkQBPLhkLwFmGnC/aZui1Eholi9h1Rz4cFZ5VDqdjsN/YIjpH/t2LHMh9Lu
|
||||||
|
njibo1dOyQqNSdILZfUGo/kii5ZMI2+TRyOZOACvbLU9mZmyGjXS4l5tc4PRhjUE
|
||||||
|
2V3Apslo+pviTCIinLPng15mzTOQxlUokLf5yg==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
In neuem Issue referenzieren
Einen Benutzer sperren