SSL Manager je webová aplikace pro správu SSL certifikátů a Apache virtuálních hostů na Linux serverech. Aplikace umožňuje jednoduše přidávat, spravovat a monitorovat domény, automaticky generovat SSL certifikáty pomocí Let's Encrypt (Certbot) a konfigurovat Apache virtuální hosty.
- 🌐 Správa domén a virtuálních hostů Apache
- 🔒 Automatické generování a obnovování SSL certifikátů pomocí Let's Encrypt
- 🔄 Kontrola stavu SSL certifikátů
- 📊 Přehledné rozhraní pro správu
- 📥 Import existujících domén z Apache konfigurace
- 🔧 Podpora simulačního režimu pro testování bez zásahu do produkčního prostředí
- Frontend: React 19, Next.js 15, Tailwind CSS 4
- Backend: Next.js API Routes, Node.js
- Autentizace: HTTP Basic Auth (Apache)
- Integrace: Apache, Certbot (Let's Encrypt)
- Linux server (testováno na Ubuntu/Debian)
- Node.js 18+ a npm
- Apache 2.4+
- Certbot
- Sudo oprávnění pro www-data uživatele (pro spouštění Apache a Certbot příkazů)
Pro automatickou instalaci použijte instalační skript:
# Stáhněte repozitář
git clone https://github.com/Jackal1337/ssl-manager.git
cd ssl-manager
# Spusťte instalační skript jako root
sudo ./install.shInstalační skript provede následující kroky:
- Instalace potřebných balíčků (Node.js, npm, Apache, Certbot)
- Vytvoření adresáře pro aplikaci
- Instalace závislostí aplikace
- Konfigurace HTTP autentizace
- Nastavení Apache proxy
- Konfigurace sudo oprávnění pro www-data
- Nastavení a spuštění systemd služby
Pokud preferujete ruční instalaci, postupujte podle těchto kroků:
- Instalace závislostí
sudo apt update
sudo apt install -y nodejs npm apache2 apache2-utils certbot python3-certbot-apache- Příprava aplikace
# Stáhněte repozitář
git clone https://github.com/Jackal1337/ssl-manager.git
cd ssl-manager
# Instalace závislostí
npm install --production
# Build aplikace
npm run build- Konfigurace Apache
# Vytvoření souboru s heslem pro HTTP autentizaci
sudo htpasswd -c /etc/apache2/.htpasswd-ssl-manager admin
# Kopírování konfigurace Apache
sudo cp ssl-manager.conf /etc/apache2/conf-available/
# Aktivace konfigurace
sudo a2enconf ssl-manager
sudo a2enmod proxy proxy_http auth_basic authn_file authz_user authz_host
sudo systemctl reload apache2- Nastavení sudo oprávnění
sudo cp ssl-manager-sudoers /etc/sudoers.d/ssl-manager
sudo chmod 440 /etc/sudoers.d/ssl-manager- Nastavení systemd služby
sudo cp ssl-manager.service /etc/systemd/system/
sudo systemctl enable ssl-manager
sudo systemctl start ssl-managerKonfigurační soubor se nachází v src/config/environment.ts. Zde můžete upravit:
- Simulační režim (
simulationMode) - Cesty k Apache konfiguraci (
apacheConfigPath,apacheEnabledSitesPath) - Cestu k Certbot (
certbotPath) - Výchozí kořenový adresář pro dokumenty (
defaultDocumentRoot) - Výchozí e-mail pro Let's Encrypt (
defaultEmail) - Cestu k souboru s daty (
dataFilePath)
Po instalaci je aplikace dostupná na adrese http://vas-server/ssl nebo na portu 1337 (http://vas-server:1337).
- Klikněte na tlačítko "Přidat doménu"
- Vyplňte název domény a cestu k dokumentům
- Zvolte, zda chcete povolit SSL
- Klikněte na "Uložit"
Aplikace automaticky vytvoří konfiguraci Apache virtuálního hosta a v případě potřeby vygeneruje SSL certifikát.
- Přejděte na stránku "Nastavení"
- Klikněte na tlačítko "Importovat domény"
- Aplikace automaticky detekuje a importuje existující virtuální hosty z Apache konfigurace
Pro každou doménu s povoleným SSL můžete:
- Zkontrolovat stav SSL certifikátu
- Obnovit SSL certifikát
- Vygenerovat nový SSL certifikát (pokud ještě neexistuje)
Aplikace podporuje simulační režim, který umožňuje testovat funkcionalitu bez skutečného zásahu do Apache konfigurace nebo generování SSL certifikátů. Pro aktivaci simulačního režimu nastavte simulationMode: true v souboru src/config/environment.ts.
V simulačním režimu jsou všechny operace prováděny v adresáři data/simulated/.
npm run devAplikace bude dostupná na adrese http://localhost:1337.
npm run buildnpm run start├── data/ # Data aplikace
├── public/ # Statické soubory
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # API endpointy
│ │ └── ... # Stránky aplikace
│ ├── components/ # React komponenty
│ │ └── ui/ # UI komponenty
│ ├── config/ # Konfigurace
│ ├── services/ # Služby pro práci s API
│ └── types/ # TypeScript typy
├── install.sh # Instalační skript
├── ssl-manager.conf # Apache konfigurace
├── ssl-manager.service # Systemd služba
└── ssl-manager-sudoers # Sudo oprávnění
Tento projekt je licencován pod MIT licencí.
Vytvořeno s ❤️ Jackal
