Skip to content

zdenek-stursa/ssl-manager

 
 

Repository files navigation

SSL Manager

Preview

O projektu

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.

Klíčové funkce

  • 🌐 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í

Technologie

  • 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)

Požadavky

  • 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ů)

Instalace

Automatická instalace

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.sh

Instalační skript provede následující kroky:

  1. Instalace potřebných balíčků (Node.js, npm, Apache, Certbot)
  2. Vytvoření adresáře pro aplikaci
  3. Instalace závislostí aplikace
  4. Konfigurace HTTP autentizace
  5. Nastavení Apache proxy
  6. Konfigurace sudo oprávnění pro www-data
  7. Nastavení a spuštění systemd služby

Ruční instalace

Pokud preferujete ruční instalaci, postupujte podle těchto kroků:

  1. Instalace závislostí
sudo apt update
sudo apt install -y nodejs npm apache2 apache2-utils certbot python3-certbot-apache
  1. 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
  1. 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
  1. Nastavení sudo oprávnění
sudo cp ssl-manager-sudoers /etc/sudoers.d/ssl-manager
sudo chmod 440 /etc/sudoers.d/ssl-manager
  1. Nastavení systemd služby
sudo cp ssl-manager.service /etc/systemd/system/
sudo systemctl enable ssl-manager
sudo systemctl start ssl-manager

Konfigurace

Konfigurač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)

Použití

Po instalaci je aplikace dostupná na adrese http://vas-server/ssl nebo na portu 1337 (http://vas-server:1337).

Přidání nové domény

  1. Klikněte na tlačítko "Přidat doménu"
  2. Vyplňte název domény a cestu k dokumentům
  3. Zvolte, zda chcete povolit SSL
  4. Klikněte na "Uložit"

Aplikace automaticky vytvoří konfiguraci Apache virtuálního hosta a v případě potřeby vygeneruje SSL certifikát.

Import existujících domén

  1. Přejděte na stránku "Nastavení"
  2. Klikněte na tlačítko "Importovat domény"
  3. Aplikace automaticky detekuje a importuje existující virtuální hosty z Apache konfigurace

Správa SSL certifikátů

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)

Simulační režim

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/.

Vývoj

Spuštění vývojového serveru

npm run dev

Aplikace bude dostupná na adrese http://localhost:1337.

Build pro produkci

npm run build

Spuštění produkční verze

npm run start

Struktura projektu

├── 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í

Licence

Tento projekt je licencován pod MIT licencí.

Autor

Vytvořeno s ❤️ Jackal

Poděkování

About

Webová aplikace pro správu SSL certifikátů a Apache virtuálních hostů

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.3%
  • Shell 2.5%
  • Other 1.2%