Premesso che non sono un sistemista, quello che trovate di seguito può essere utile per effettuare dei test utilizzando Apache2, il protocollo HTTPS e un certificato autofirmanto.
 
Passo1 – Creare il certificato con openssl
 
Se usate linux/unix, openssl dovrebbe essere già disponibile e nella peggiore delle ipotesi basterà scaricarlo dal repository in rete con il sempreverde: 
 
sudo apt-get install openssl
 
Verificata quindi la presenza di openssl possiamo creare il certificato usando un comando come questo:
 
sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ca/my_apache_cert.pem -keyout /etc/apache2/ca/my_apache_cert.pem
 
Stiamo dicendo di creare un nuovo certificato (“-new”) di tipo x509 (“-x509”) valido per 365 giorni (“-days”).
Il certificato e la chiave privata vengono salvati nella directory specificata con gli attributi “-out” e “-keyout”. 
L’attributo “-new” dice che vogliamo generare un nuovo certificato quindi verranno richieste a riga di comando tutta una serie di informazioni quali nome azienda, indirizzo, e-mail, …
 
Per i più curiosi e precisi, questa è la documentazione di riferimento per il comando “req” di openssl: http://www.openssl.org/docs/apps/req.html
 
Se aprite il certificato con il buon vecchio “VI” scoprirete che è diviso in due sezioni ed è completamente illegibile com’è giusto che sia:
 
—–BEGIN RSA PRIVATE KEY—–
MIICXAIBAAKBgQCq3HYf2jE9aYWYoHGJIZ9b45kQ6nYxnCwAIVwMtsVThIIOod6V
Svg2nLE5PILxdtLYSb4Yd8MDvvjyzHi+Tb2BGhL7jufs+4XiXZe/twobwb9VjvSF
….
….
—–END RSA PRIVATE KEY—–
—–BEGIN CERTIFICATE—–
MIIDCjCCAnOgAwIBAgIJAP5wSD/8B39IMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNV
BAYTAklUMQ8wDQYDVQQIEwZNaWxhbm8xDzANBgNVBAcTBk1pbGFubzEQMA4GA1UE
….
….
—–END CERTIFICATE—–
 
Passo2 – Abilitare il modulo SSL di Apache2
 
A questo punto abilitiamo il modulo SSL su Apache2 con il comando “a2enmod” (apache2 enable module).
Dovreste trovarlo già nel path essendo un comando installato in “/usr/sbin”.
 
sudo a2enmod ssl
 
Passo3 – Configurare il virtual host SSL di default
 
Adesso dobbiamo configurare il virtual host di default per poter effettuare la nostra connessione https.
Usiamo il comando “a2ensite” (apache2 enable site):
 
sudo a2ensite default-ssl
 
Verrà creato un file di nome “default-ssl” all’interno di “/etc/apache2/sites-available/”.
 
Controllate adesso che il file “/etc/apache2/ports” contenga le seguenti righe:
 

<IfModule mod_ssl.c>
Listen 443

 
Questo indica che il nostro server sta in ascolto sulla porta 443, che è appunto la porta di default per le connessioni https.
 
Spostiamoci adesso in “/etc/apache2/sites-available/” e apriamo il file “default-ssl” creato in precedenza.
Assicuratevi che sia presente al suo interno la seguente riga:
 
SSLEngine On
 
e aggiungete il riferimento al nostro nuovo certificato:
 
SSLCertificateFile /etc/apache2/ca/my_apache_cert.pem
 
Salvate il file e chiudete.
 
Riavviate Apache con il comando:
 
apachectl restart
 
Collegatevi all’indirizzo https://localhost e il gioco è fatto.
Vi verrà chiesto se il certificato è attendibile e una volta dato l’ok avrete accesso alla vostre applicazioni su protocollo SSL.