Menu Close

Certificati SSL su vhost multipli

Con il passaggio di dominio ad uno personalizzato mi si è reso necessario la creazione di un certificato SSL per permettere l’utilizzo di comunicazioni HTTPS sul mio dominio.

Ho però necessità di certificare piu vhost (sottodomini) con ognuno funzionalità diverse.

Esistono dei certificati SSL chiamati WildCard che permettono per l’appunto di certificare piu sottodomini con un’unico certificato SSL, questi però vanno da circa $80/anno fino anche a $400-$500/anno! Non mi sembra il caso per un sito “amatoriale”.

Ho provato quindi a certificare ogni vhost con un SSL diverso, pagando per ognuno circa 2€ l’anno, ecco com’è andata!

 

Certificato scelto:
Caratteristiche:

Key features of COMODO Positive SSL certificates

  • Complete domain validated certificate
  • 2048 bit SSL Industry standard SSL certificate
  • The most trusted SSL security by all latest web browsers.
  • 99.99% the latest web browser compatibility.
  • The strongest 128 bit and up to 256 bit SSL encryption.
  • 30 days fully 100% money back refund policy.
  • Free site seal
  • $10,000 relying party warranty from Comodo.
  • Email and web support for 24/7 hours for 365 days.
  • Unlimited Re-Issuance Policy
  • Unlimited server licenses
Per richiedere il certificato è necessario creare un file csr che può essere generato su server oppure direttamente dal pannello di controllo di gogetssl.com (https://my.gogetssl.com/en/user/csr/generate/)
Istruzioni da linea di comando:
Generazione chiave Privata:
openssl genrsa -des3 -out home.smartdomotik.com.key 2048
NB:L’opzione -des3 richiede di inserire una password per proteggere la chiave, se non si vuole proteggerla basta togliere l’opzione.
Proteggere la chiave con una passphrase implica che ad ogni riavvio di apache venga richiesta questa password!
generazione del CSR:
openssl req -new -key home.smartdomotik.com.key -out home.smartdomotik.com.csr
Input the information for the Certificate Signing Request. This information will be displayed in the certificate.
Note: The following characters can not be accepted: < > ~ ! @ # $ % ^ * / ( ) ?.,&
Country Name (2 letter code) [AU]:IT
State or Province Name (full name) [Some-State]:Italy
Locality Name (eg, city) []:Trento
Organization Name (eg, company) [Internet Widgits Pty Ltd]: vuoto o nome del tuo dominio/azienda
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:home.smartdomotik.com (<- ATTENZIONE DEVE ESSERE ESATTAMENTE IL VHOST PER IL QUALE SI RICHIEDE L'SSL)
Note: DO NOT Enter the following:
Email Address []:
A challenge password []:
An optional company name []:
Se per sbaglio avete inserito una passphrase sulla chiave privata, potete eseguire questo comando per rimuoverla:
openssl rsa -in home.smartdomotik.com.key -out home.smartdomotik.com.key.nopass
Una volta acquistato e registrato viene richiesto di inserire il CSR generato (copia-incolla del testo), selezionare inoltre in Web Server Software “Apache/ModSSL“.
Successivamente viene proposto un metodo di autenticazione del dominio che può essere tra email oppure tramite il posizionamento di un file http sull’host da certificare.
Ho preferito scegliere la seconda opzione in quanto l’email viene inviata per forza a degli indirizzi prestabiliti (@tuodomino).
Una volta convalidato il dominio (entro pochi minuti) ti viene inviato via mail uno zip con i certificati da definire nel vhost come segue:
SSLCACertificateFile /etc/ssl/home.smartdomotik.com/PositiveSSLCA2.crt
SSLCertificateFile /etc/ssl/home.smartdomotik.com/home_smartdomotik_com.crt
SSLCertificateKeyFile /etc/ssl/home.smartdomotik.com/private/home.smartdomotik.com.key
dove home.smartdomotik.com è il dominio per il quale ho richiesto il certificato.
Una volta configurato il vhost, basta riavviare apache e tutto dovrebbe funzionare:
/etc/init.d/apache2 restart
Ho letto parecchio in giro che non è possibile definire piu SSL per vhost sulla stessa macchina con lo stesso IP.
 
Io configurando come sopra non ho avuto nessun problema nel definire piu certificati SSL per piu sottodomini (vhost) collegati allo stesso ip.
C’è da dire che la mia configurazione del dominio è leggermente diversa dal normale in quanto avendo un IP dinamico ho dovuto appoggiarmi al servizio http://dyn.com/dns/dyn-standard-dns/ che mi consente di avere fino a 75 sottodomini con un dominio personalizzato definendo per ognuno un’ip diverso (che se è dinamico è possibile utilizzare il loro client per aggiornare i sottodomini che devono avere lo stesso ip in modo completamente automatico).
Questo è davvero un grande servizio, in quanto si può per esempio posizionare tutte le immagini su un’altro server totalmente diverso (con gestione della cache ecc) e aggiungere semplicemente un sottodominio che punti a quell’ip.

Per definire i vhost ho utilizzato un unico file /etc/apache2/sites-available/default-ssl con una configurazione di questo tipo:

<IfModule mod_ssl.c>
NameVirtualHost *:443
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName  smartdomotik.com
DocumentRoot /home/www/smartdomotik.com/

SSLEngine on
SSLCACertificateFile /etc/ssl/www.smartdomotik.com/PositiveSSLCA2.crt
SSLCertificateFile /etc/ssl/www.smartdomotik.com/www_smartdomotik_com.crt
SSLCertificateKeyFile /etc/ssl/www.smartdomotik.com/private/www.smartdomotik.com.key
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin  webmaster@localhost
        ServerName  home.smartdomotik.com
        ServerAlias home.smartdomotik.com

DocumentRoot /home/www/home.smartdomotik.com/

SSLEngine on
SSLCACertificateFile /etc/ssl/home.smartdomotik.com/PositiveSSLCA2.crt
SSLCertificateFile /etc/ssl/home.smartdomotik.com/home_smartdomotik_com.crt
SSLCertificateKeyFile /etc/ssl/home.smartdomotik.com/private/home.smartdomotik.com.key

</VirtualHost>
</IfModule>
Mentre per ogni vhost ho semplicemente definito delle regole di rewrite nell’htaccess per ridirigere ogni chiamata al sito https (dove richiesto).
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Spero sia di aiuto, se avete altri dubbi sulla procedura contattatemi pure.
Posted in Linux, News

Leave a Reply

Your email address will not be published. Required fields are marked *