Návod jak zabezpečit ISPConfig administraci VPS serveru na Debian 8 pomocí Let's Encrypt certifikátu.
Základem u VPS serveru je mít správně nastavenou identifikaci stroje prostřednictvím hostname. V ISPConfig je nutné nastavit primární hostname prostřednitvím volby System>Server Config a v kolonce Hostname uvést konkrétní doménu, která bude pro server idetifikační. V našem případě použijeme fiktivní example.com.
Předpoklady pro správnou funkčnost
- ISPConfig musí být dostupný přes IP adresu serveru - je nutné ověřit, zda po zadání adresy https://xxx.xxx.xxx.xxx:8080 se skutečně zobrazí přihlašovací obrazovka ISPConfig.
- ISPConfig musí být nastaven v režimu dostupnosti SSL. Pokud není, je nutné spustit ispconfig_update.sh a volbu SSL povolit.
- Primární adresa serveru - example.com musí mít DNS A záznamy totožné s IP adresou serveru.
Pokud je vše splněno, můžeme přistoupit k nastavení.
1.Vytvoření primární SITE serveru
V administraci ISPConfig vytvořte novou stránku přes Sites>Add new website. Ta se musí shodovat s hostname serveru (example.com). Při vytváření je nutné zaškrtnout volbu SSL a Let's Encrypt SSL.
ISPConfig vygeneruje certifikát pro primární doménu a ta by měla být korektně dostupná pod adresou https://www.example.com
2. Nastavení certifikátů pro Let's Encrypt
V tomto kroku "podsuneme" certifikáty vygenerované pro primární doménu example.com administraci ISPConfig. Přihlásíme se tedy k serveru přes SSH a provedeme zálohu stávajících certifikátu, které ISPConfig používá.
cd /usr/local/ispconfig/interface/ssl/ mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak if [ -f "ispserver.pem" ]; then mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak fi
Výsledkem tedy jsou zálohy stávajících certifikátů s příponou bak.
Nyní vytvoříme odkazy na existující certifikáty pro doménu example.com
ln -s /etc/letsencrypt/live/example.com/fullchain.pem ispserver.crt ln -s /etc/letsencrypt/live/example.com/privkey.pem ispserver.key cat ispserver.{key,crt} > ispserver.pem chmod 600 ispserver.pem
V poslední fázi stačí restartovat Apache:
service apache2 restart
V tuto chvíli by měla být administrace ISPConfig dostupná pod adresou https://example.com:8080 v zabezpečeném režimu.
Uvedený návod jsem úspěšně použil na mimo jiné také na VPS serverech WEDOS.
Problémy se SSL certifikátem
Může se stát, že doména, která je aliasovaná k cetifikátu expiruje nebo se z nějakého důvodu změní DNS A záznamy a Certbot pak není schopen vygenerovat nový certifikát.
Začneme problém lokalizovat přímo od zdroje, což je /etc/apache2/sites-enabled kde jsou vhosts konfigurace domény. V souboru / souborech *.vhost je tedy uvedeno, kde certifikát najdeme na disku serveru. Díky tomu zjistíme, že položka SSLCertificateFile nastavuje cestu k certifikátu a tuto musíme zkontrolovat, zda na jejím konci je opravdu platný nově vygenerovaný certifikát.
Zkontrolujeme kam směřují symlinky ve složce /var/www/domena.tld/ssl/ a to konkrétně symlinky pro sobory:
- domena.tld-le.crt
- domena.tld-le.key
- domena.tld-le.bundle
Většinou směřují do složky /etc/letsencrypt/live/domena.tld-XXX/ jako odkaz na další symlink, který je nutné opět zkontrolovat. Většinou směřuje do ../../archive/domena.tld-XXX/.
* XXX je číslo 001 002 nebo 007, podle toho kolik generování proběhlo
Obecně jde o to, že se mi někdy stane, že automaticky generované certifikáty nastaví symlinky na chybný (starý) adresář, přesto že nový certifikát byl vygenerován s novým číslem v novém adresáři.
Většinou stačí opravit symlinky přímo v /var/www/vasedomena.tld/ssl/ a nasměrovat je na nejnovější adresář v /etc/letsencrypt/live/domena.tld-XXX/. Po opravě symlinků je nutné restartovat apache.
service apache2 restart