Non resta altro da fare ora che abilitare Apache ad accettare tale tipo di connessioni. Abilitiamo ora il modulo mod_ssl
per Apache2 con il semplice comando:
a2enmod ssl
La cosiddetta "well known port" su cui Apache deve ascoltare le nuove richieste HTTP ad esso provenienti non è più la 80, ma la 443. Nel file /etc/apache2/ports.conf
modifichiamo quindi il valore 80 in 443: Listen 443
.
L'ultimo passo consiste nell'assicurarci che il nostro virtual host accetti connessioni di tale tipo:
<VirtualHost *:443> [...] SSLEngine On SSLProtocol All -SSLv2 # Solo SSLv3 SSLCipherSuite ALL:!EXP:!NULL:!ADH:!LOW SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key </VirtualHost>
Infine riavviamo Apache.
La "messa in strada" impone quindi che, se l'URL del programma Web era inizialmente http://mio_server.com/mia_applicazione
, ora è divenuto https://mio_server.com/mia_applicazione
, definendo implicitamente l'utilizzo dell'SSL tra le parti. E questa è l'unica modifica visibile a livello utente, a parte l'icona a forma di lucchetto che il browser visualizzerà ad indicare una connessione cifrata.
Nella pratica, i programmi Web PHP non identificano gli script interni tramite URL assoluti, ma relativi, quindi nella gran parte dei casi il programma stesso non dovrà subire alcuna modifica in seguito all'adozione del tunneling SSL, essendo questo di fatto trasparente alle applicazioni di livello utente. Tuttavia, è necessario controllare che alcuni link semplici non puntino ad URL completi, nel qual caso dovranno esser convertiti (ovvero modificati, nel codice). Se il programma è ben progettato avrà tuttavia un file di configurazione in cui modificarne il comportamento.