Dacă în articolul precedent am povestit despre cum se instalează un certificat SSL gratuit panoului de autentificare Sentora, acum voi descrie modalitatea de instalare a unui certificat SSL Lets Encrypt gratuit pentru securizarea domeniilor adăugate în panoul de control Sentora.
Nu voi relua prima parte a celor scrise în articolul precedent - dacă ați securizat panoul de autentificare NU trebuie făcuți din nou pașii descriși până la Instalarea git și Let's Encrypt (inclusiv). Vom continua cu:
Generarea unui certificat SSL pentru domeniu
Trebuie să închidem Apache înainte de generarea certifcatului SSL, pentru a nu primi eroarea de mai jos:
The program httpd (process ID XXXX) is already listening on TCP port 80. This will prevent us from binding to that port. Please stop the httpd program temporarily and then try again.
NOTĂ: înlocuți domeniu.ro cu numele domeniului vostru.
În Ubuntu 14.04:
service apache2 stop
./letsencrypt-auto certonly --standalone -d domeniu.ro -d www.domeniu.ro
service apache2 start
În CentOS 7:
systemctl stop httpd
./letsencrypt-auto certonly --standalone -d domeniu.ro -d www.domeniu.ro
systemctl start httpd
Schimbarea portului Sentora
În Sentora Panel mergem la Admin --> Module Admin --> Apache Config --> Override a Virtualhost [Selectați VHost-ul dorit]
Se bifează Port Override. Forward Port 80 to Overriden Port: se modifică cu valoarea 443
În secțiunea Custom Entry (în codul de mai jos, nu uitați să înlocuițiu domeniu.ro cu numele domeniului vostru):
SSLEngine on
SLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
SSLCertificateFile /etc/letsencrypt/live/domeniu.ro/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domeniu.ro/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domeniu.ro/chain.pem
# Keeping bellow for future upgrades.
# Requires Apache >= 2.4
SSLCompression off
Se salvează Vhost-ul.
Imaginea de mai jos arată cele descrise mai sus:
Așteptăm daemon-ul să ruleze sau îl rulăm forțat cu comanda de mai jos:
php -q /etc/sentora/panel/bin/daemon.php
Se restartează serverul Apache.
În Ubuntu 14.04:
service apache2 restart
În CentOS 7:
systemctl restart httpd
În acest moment, adresa URL cu care vă conectați la domeniul vostru va fi securizată cu SSL și veți folosi https în loc de http. Puteți verifica acest lucru aici: https://www.ssllabs.com/ssltest
Reînnoire automată a certificatelor Let's Encrypt
Pentru reînnoirea automată a tuturor certificatelor emise de Let's Encrypt trebuie rulată o simplă comandă din folderul letsencrypt:
./letsencrypt-auto renew
Se face verificarea automată a tuturor certificatelor instalate pe server și le reînnoiește pe cele expirate:
# ./letsencrypt-auto renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/panel.domeniu.ro.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/feroviarul.ro.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/bobses.eu.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/domeniu.ro.conf
-------------------------------------------------------------------------------Cert not yet due for renewal
The following certs are not due for renewal yet:
/etc/letsencrypt/live/panel.domeniu.ro/fullchain.pem (skipped)
/etc/letsencrypt/live/feroviarul.ro/fullchain.pem (skipped)
/etc/letsencrypt/live/bobses.eu/fullchain.pem (skipped)
/etc/letsencrypt/live/domeniu.ro/fullchain.pem (skipped)
No renewals were attempted.
Pentru automatizarea reînnoirii se face o sarcină cron care să ruleze când vreți voi (cred că rularea zilnică este indicată dacă aveți certificate luate la momente diferite și care vor expira în perioade diferite și nu vreți să aveți probleme cu site-ul). De exemplu, sarcina cron de mai jos va rula zilnic la 1 minut după miezul nopții și va adăuga output-ul fișierului letsencrypt_renew.log:
01 0 * * * /cale/folder/letsencrypt/./letsencrypt-auto renew --pre-hook "service apache2 stop" --post-hook "service apache2 start" >> /var/log/letsencrypt/letsencrypt_renew.log>> /var/log/letsencrypt/letsencrypt_renew.log
Precizez că cele descrise în acest articol funcționează fără probleme pe serverele VPS Ubuntu 14.04/CentOS 6/7 de la chroot.ro.
În funcție de serverul vostru, înlocuiți service apache2 stop/start cu systemctl stop/start apache2/httpd
Mihai a zis
Salut,
Tutorialul este unul foarte interesant. As fi interesat de un tutorial de instalare pentru Let's Encrypt pentru Virtualmin / Webmin. Ai idee de unde pot incepe?
Multam,
Mihai
Bobses a zis
Salut
Uite aici cum se instalează Let's Encrypt pentru Webmin/Virtualmin: https://www.hostinger.com/tutorials/vps/how-to-install-lets-encrypt-ssl-on-vps-running-vebmin-virtualmin
Mihai a zis
Multam, exact ce cautam.
Bobses a zis
Cu plăcere. 🙂