SECURIZAREA SERVERULUI APACHE CU LET’S ENCRYPT

Se actualizeaza sursele:

apt update

Se instaleaza Certbot:

apt install -y python3-certbot-apache

Certbot genereaza certificatele localizate in /etc/letsencrypt/live/silviamarin.ro

a. HTTP Challenge validation
Se opreste serverul Apache apoi se genereaza certificatul:

systemctl stop apache2.service
certbot certonly --standalone -d silviamarin.ro -d www.silviamarin.ro

b. Obtinerea certificatelor Let’s Encrypt cu wildcard
Se opreste serverul Apache apoi se genereaza certificatele:

systemctl stop apache2.service
certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'silviamarin.ro,*.silviamarin.ro'

Certbot furnizeaza instructiuni pentru inregistrarea TXT pentru domeniu:

Please deploy a DNS TXT record under the name _acme-challenge.silviamarin.ro with the following value:
667drNmQL3vX6bu8Yy0wKNBlCny8yrjF1lSaUndc
Once this is deployed,Press ENTER to continue

Se genereaza inregistrarea TXT cu datele furnizate de Certbot in DNS Zone Management a hosting-ului apoi Enter si se continua derularea scriptului.
Pentru freedns.afraid.org se introduce  _acme-challenge la „Subdomain” iar inregistrarea TXT la „Destination” pusa intre ghilimele
c. DNS challenge validation
Se opreste serverul Apache apoi se genereaza certificatele:

certbot -d silviamarin.ro, -d www.silviamarin.ro --manual --preferred-challenges dns certonly

Certbot furnizeaza instructiuni pentru inregistrarea TXT pentru domeniu:

Please deploy a DNS TXT record under the name
_acme-challenge.silviamarin.ro with the following value:

667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndcOnce this is deployed,
Press ENTER to continue

Se genereaza inregistrarea TXT cu datele furnizate de Certbot in DNS Zone a hosting-ului apoi Enter si se continua derularea scriptului.

Se deschide apoi fisierul /etc/apache2/sites-available/silviamarin.ro.conf:

nano /etc/apache2/sites-available/silviamarin.ro.conf

Se inlocuieste continutul cu urmatorul:

<VirtualHost *:80>
ServerName silviamarin.ro
ServerAlias www.silviamarin.ro
Redirect permanent / https://silviamarin.ro
DocumentRoot /var/www/silviamarin.ro/html
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName silviamarin.ro
DocumentRoot /var/www/silviamarin.ro/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/silviamarin.ro/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/silviamarin.ro/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Se activeaza modulul SSL al serverului Apache si se reporneste

a2enmod ssl 
systemctl restart apache2

Se activeaza suportul pentru „perfect forward secrecy” in modulul ssl:

nano /etc/apache2/mods-available/ssl.conf

Se activeaza  „SSLHonorCipherOrder on” si se inlocuieste „SSLCipherSuite HIGH:!aNULL” cu
SSLCipherSuite ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:DHE-RSA-CAMELLIA128-SHA:AES128-SHA:RC4-SHA:HIGH:!aNULL:!MD5:!ADH

Se salveaza fisierul si se reporneste serverul Apache

systemctl restart apache2.service

Mai multe site-uri pe acelasi server Apache
În /etc/apache2/sites-available/ se creeaza fisierele de configurare pentru fiecare domeniu/subdomeniu suplimentar:

mkdir -p /var/www/silviamarin.ro/subdomeniu 
cp /var/www/html/index.html /var/www/silviamarin.ro/subdomeniu 
chown -R www-data:www-data /var/www
nano /etc/apache2/sites-available/subdomeniu.silviamarin.ro.conf

Se introduc informatiile pentru fiecare site/subdomeniu în parte:

<VirtualHost *:80>
ServerName subdomeniu.silviamarin.ro
ServerAlias www.subdomeniu.silviamarin.ro
Redirect permanent / https://subdomeniu.silviamarin.ro
DocumentRoot /var/www/silviamarin.ro/subdomeniu
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName subdomeniu.silviamarin.ro
DocumentRoot /var/www/silviamarin.ro/subdomeniu
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/silviamarin.ro/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/silviamarin.ro/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Se salveaza fisierele, se activeaza fiecare site în parte şi se reporneste Apache:

a2ensite subdomeniu.silviamarin.ro.conf
systemctl restart apache2.service

Certificatele Let’s Encrypt se reinnoiesc la fiecare 90 de zile. Pentru reinnoirea cu subdomenii se editeaza fisierul de configurare silviamarin.ro.conf din /etc/letsencrypt/renewal. La [renewalparams] se introduce randul:

allow_subset_of_names = True

Revocarea certificatelor se face cu comanda:

certbot revoke --cert-path /etc/letsencrypt/archive/silviamarin.ro/cert1.pem