Apache tip & tricks
Abilitare modulo SSL
Di default il modulo non è abilitato
sudo a2enmod ssl
Richiesta CSR
Genera un file .csr e un file .key che sono la richiesta di certificato per il server in questione e la chiave privata.
openssl req -new -newkey rsa:2048 -nodes -keyout designbestmagazine.com_private_key.key -out designbestmagazine.com.csr
Importante, alla domanda sul Common Name specificare il NOME DEL DOMINIO (es designbestmagazine.com)
Aggiungere domini certificati
Per creare un VirtualHost con certificato autentico aggiungere un file dentro alla cartella /etc/apache2/sites-available con la configurazione personalizzata che utilizzi i certificati giusti.
Esempio pratico:
- Copiare i file del certificato (crt e key) + il certificato intermedio nella cartella
/etc/apache2/ssl/. N.B. Se si dispone del file .cer basta rinominare l'estensione in .crt - Unire certificato e certificato intermedio in un unico file con il comando
cat nomesito.com_ssl_certificate.crt nomesito.com_ssl_certificate_intermediate.crt >> nomesito.com_ssl_certificate_bundle.crt
Ricordarsi di mettere in /etc/apache2/ssl/ i tre file
nomesito.com_ssl_certificate.crtnomesito.com_private_key.keynomesito.com_ssl_certificate_bundle.crt
Configurazione del Virtualhost
Il virtualhost cambia la porta e aggiunge le direttive SSLEngine, SSLCertificateFile e SSLCertificateKeyFile.
È possibile configurare un redirect http => https direttamente dal virtualhost.
Esempio pratico:
#
# blog.designbest.com
#
<VirtualHost *:80>
ServerName blog.designbest.com
Redirect / https://blog.designbest.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin s.vincenzi@webmobili.it
ServerName blog.designbest.com
DirectoryIndex index.html index.htm index.php
DocumentRoot /var/www/blog.designbest.com/
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/blog.designbest.com/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/designbest.com_ssl_certificate_bundle.crt
SSLCertificateKeyFile /etc/apache2/ssl/designbest.com_private_key.key
ErrorLog ${APACHE_LOG_DIR}/blog.designbest.com/error.log
CustomLog ${APACHE_LOG_DIR}/blog.designbest.com/access.log combined
</VirtualHost>
</IfModule>
Let’s Encrypt
Guida per creare il certificato su Debian https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-11