LaoBlog

Certificato ssl per Apache senza password


Con riferimento al post su Postfix (se mi permettete il gioco di parole ), anche il webserver Apache/Apache2 supporta l'utilizzo di ssl per la connessione sicura tra server e client (il browser web), attraverso il protocollo https.Come viene descritto su http://www.apache-ssl.org/#Digital_Certificates, si procede come segue:Creazione della chiave e della richiesta:#openssl req -new > new.cert.csrRimozione della frase di sicurezza (passphrase) dalla chiave (opzionale):#openssl rsa -in privkey.pem -out new.cert.keyConversione della richiesta nel certificato firmato:#openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365Inserire all'interno del file di configurazione di Apache il percorso di chiave e certificato:Utilizzando una distribuzione Debian/Ubuntu, In /etc/apache2/apache2.conf vanno inserite le seguenti direttive:SSLCertificateFile /path/to/certs/new.cert.certSSLCertificateKeyFile /path/to/certs/new.cert.keyPerché rimuovere la passphrase della chiave? Il motivo è che ogni qualvolta viene riavviato Apache su cui è abilitato il protocollo https, la chiave richiede la passphrase, per cui bisogna inserirla a mano, altrimenti il webserver Apache non parte. E' una questione di sicurezza, e per evitare che personale non autorizzato che è riescito a modificare in qualche modo Apache o ciò che ci gira sopra (tipicamente un sito web), possa rendere effettive, e quindi visibili, tali modifiche, riattivando/restardando il servizio apache. Tale caratteristica tuttavia risulta un po' fastidiosa per weserver casalinghi, dove magari frequenti sono i blackout o dove per qualunque altro motivo sia necessario riavviare spesso il computer che ospita il webserver. E' quindi possibile, come abbiamo visto, togliere la passphrase in modo che apache riparta senza il bisogno di inserirla, col solo script presente in /etc/init.d/