Certifikáty

Share
03. 09. 2019

Základní nastavení a předpoklady

  • Certifikáty jsou vystavovány certifikační autoritou Let’s Encrypt.
  • Jako první je nutné mít správně nastavené DNS záznamy pro Administrační rozhraní a Portál klienta.
  • Dále je potřeba mít v Nastavení / Syst. nastavení / Zabezpečení povolené HTTP (80) a HTTPS (443).
  • A v neposlední řadě je nezbytné v konfiguraci web serveru Apache2 nastavit pro každou doménu ServerName.
nano /etc/apache2/sites-available/ispadmin.conf
  • Administrační rozhraní:
### ISP admin#
<VirtualHost *:80>
  ServerName admin.mydomain.tld
  DocumentRoot "/data/support_nossl/"
 <Directory /data/support_nossl/>
    Options FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
</Directory>

</VirtualHost>

## ISP Admin SSL
<VirtualHost *:443>
  ServerName admin.mydomain.tld
  DocumentRoot "/data/support/ispadmin/new/www/"
  AddDefaultCharset UTF-8
   <Directory /data/support/ispadmin/new/www/>
    Options +ExecCGI
    Options FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
  </Directory>
  CustomLog /var/log/apache2/access_support_ispadmin.log combined
  AddType application/x-httpd-php .php
  php_admin_value open_basedir "/data/support/:/tmp/:/data/:/usr/local/script/ispadmin/:/data/backup/:/usr/local/nagios/share/"
  php_admin_value include_path ".:/usr/local/lib/php/:/tmp/:/data/support/:/usr/local/script/ispadmin/"
  php_admin_value disable_functions  "pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_ha$
  php_admin_value display_errors "On"
  php_admin_value safe_mode "Off"
  php_admin_value safe_mode_exec_dir "/usr/local/script/ispadmin/"
  php_admin_value safe_mode_allowed_env_vars none
  php_admin_value safe_mode_include_dir ".:/usr/local/lib/php/:/tmp/:/data/support/:/usr/local/script/ispadmin/"
  php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@ispadmin.cz"

  SSLEngine on
  SSLCertificateFile /etc/apache2/certs/ispadmin.eu/ispadmin.crt
  SSLCertificateKeyFile /etc/apache2/certs/ispadmin.eu/private.key
 # SSLCertificateChainFile /etc/apache2/certs/ispadmin.eu/ca.pem
</VirtualHost>
  • Portál klienta:
## ISP dmin support
<VirtualHost *:80>

  DocumentRoot "/data/support/ispadmin/new/www/clientinterface"
  ServerName clientportal.mydomain.tld

  AddDefaultCharset UTF-8
  <Directory /data/support/ispadmin/new/www/clientinterface>
    Options ExecCGI
    Options FollowSymLinks MultiViews
    AllowOverride all
    Require all granted

  </Directory>
  CustomLog /var/log/apache2/access_support_ispadmin_support.log combined
  AddType application/x-httpd-php .php
  php_admin_value open_basedir "/data/support/:/tmp/:/data/:/usr/local/script/ispadmin/:/data/backup/"
  php_admin_value include_path ".:/usr/local/lib/php/"
  php_admin_value disable_functions  "pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_ha$
  php_admin_value display_errors "On"
  php_admin_value safe_mode "Off"

#  SSLEngine on
#  SSLCertificateFile /etc/apache2/certs/ispadmin.eu/ispadmin.crt
#  SSLCertificateKeyFile /etc/apache2/certs/ispadmin.eu/private.key
#  SSLCertificateChainFile /etc/apache2/certs/ispadmin.eu/ca.pem

</VirtualHost>
  • Po nastavení můžete konfiguraci zkontrolovat následujícím příkazem:
apachectl configtest
  • Pokud je konfigurace v pořádku (bez překlepů), můžete Apache restartovat:
systemctl restart apache2
  • Pokud je vše správně nastavené, mělo by se vám v prohlížeči zobrazit jak Administrační rozhraní, tak i Portál klienta. Zatím se však bude zobrazovat i upozornění na certifikát.

Vlastní instalace certifikátů

  • Instalaci certifikátů provedete příkazem:
/usr/local/script/ispadmin/bin/certificate.pl
  • Zadáte DNS záznamy pro Administrační rozhraní a Portál klienta.
  • Zkontrolujete, zda vypsané IP adresy odpovídají IP adrese serveru.
  • Pokud nesouhlasí, tak je zapotřebí DNS záznamy opravit. Ve skriptu vyberete volbu n a skript spustíte znovu.
  • Pokud je vše v pořádku, vytvoří se požadované certifikáty.
  • V této fázi se vás skript zeptá, jestli chcete vytvořené certifikáty nainstalovat na Apache server.
  • Pokud nemáte na Apache serveru provedeny žádné změny (vlastní konfigurace), zvolíte možnost y.
  • Pokud chcete z jakýchkoliv důvodů certifikáty nakopírovat ručně , vidíte před sebou 3 umístění, kde se jednotlivé části nacházejí. Stiskněte n a certifikáty si ručně nastavte v /etc/apache2/sites-available/ispadmin.conf.
  • Pokud jste vybrali y, provedla se instalace certifikátů. Zároveň byla provedena záloha konfigurace Apache a restart Apache serveru.
  • Nyní jsou certifikáty platné a v prohlížeči se zobrazí https.
  • Pokud je vše správně nastaveno, tak jsou certifikáty každé 3 měsíce automaticky obnovovány.

Selhání automatické obnovy certifikátů

Pokud se neprovedla automatická obnova certifikátů, zkontrolujte si následující:

  • Je Apache na standardních portech?
  • Je povolen globální přístup z internetu na http a https?
  • Je server trvale online?
  • Je v /etc/crontab následující řádek?
00 05 * * 7     root    /data/ispadmin_cert/acme/acme.sh  --apache --renewAll --home /data/ispadmin_cert/acme --certhome  /data/ispadmin_cert #letsencrypt renew ?

V případě, že automatická obnova selhala opakovaně, zkuste aktualizovat utilitu acme:

/data/ispadmin_cert/acme/acme.sh --upgrade 

Následně proveďte manuální obnovu certifikátů.

Pokud i toto selže, zkuste přeinstalovat utilitu acme:

rm -r /root/.acme.sh
rm -r /root/acme.sh
rm -r /data/ispadmin_cert/acme

Následně spusťte instalaci certifikátů:

/usr/local/script/ispadmin/bin/certificate.pl

Manuální obnova certifikátů

  • Ruční obnova:
/data/ispadmin_cert/acme/acme.sh --apache --renewAll --home  /data/ispadmin_cert/acme --certhome /data/ispadmin_cert
  • Vynucená ruční obnova:
/data/ispadmin_cert/acme/acme.sh --apache --renewAll  --home /data/ispadmin_cert/acme --certhome /data/ispadmin_cert --force 

Pomohl Vám tento článek?