Implementare SSL di Apache 2 su Ubuntu
Di seguito la procedura passo-passo per implementare e configurare la cifratura SSL di Apache 2 (HTTPS) in Ubuntu
Abilitazione del modulo SSL
1 |
sudo a2enmod ssl |
Creazione del certificato CSR (richiede la creazione di una passfrase)
1 2 3 |
sudo openssl genrsa -des3 -out server.key 1024 sudo openssl rsa -in server.key -out server.key.insecure sudo openssl req -new -key server.key -out server.csr |
Creazione del certificato personale
1 |
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt |
Installazione del certificato su Apache
1 2 |
sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private |
Abilitazione SSL (/etc/apache2/sites-available/[nomesito])
Il parametro “+CompatEnvVars” è obsoleto in Apache 2.2 quindi lo rimuoviamo
1 2 3 4 |
SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key |
Controllare in “/etc/apache2/ports.conf” se presente la riga
1 |
Listen 443 |
Riavvio del server (richiederà la passfrase ad ogni avvio)
1 |
sudo /etc/init.d/apache2 restart |
Procedura terminata, ora potete collegarvi al server all’indirizzo https://mioserver/ (ovviamente il browser vi dirà che il certificato non è valido o non sicuro, ma basta accettare gli avvertimenti e di solito non si hanno più avvisi).
In caso non si volesse la richiesta della passfrase all’avvio del server Apache occorre rimuovere la cifratura della chiave (il che potrebbe portare a un problema di sicurezza se la chiave privata finisce in mani sbagliate).
Innanzitutto fare una copia della chiave cifrata
1 |
cp server.key server.key.cryp |
Sovrascrivere la chiave cifrata (verrà richiesta la passfrase) e ricopiarla
1 2 |
sudo openssl rsa -in server.key.cryp -out server.key sudo cp server.key /etc/ssl/private |
Riavvio del server (questa volta la passfrase non verrà richiesta)
1 |
sudo /etc/init.d/apache2 restart |