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 </IfModule>
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.
Nessun commento:
Posta un commento