La principale alternativa ad Apache, peraltro in forte ascesa negli ultimi anni, è nginx. In questa lezione vedremo come installare un certificato SSL su questo web server alternativo.
Combinare i certificati
La prima cosa che è richiesta per utilizzare un certificato SSL su nginx è combinare, in un unico file, sia il certificato che è stato generato per noi dalla CA, sia gli eventuali certificati intermedi. Possiamo combinare tali certificati anche manualmente, facendo sì che il certificato generato dalla CA sia il primo, seguito poi da quelli intermedi.
Il file così generato (o eventualmente il singolo certificato, se non abbiamo certificati intermedi) va poi spostato nella directory del nostro server nginx destinata ai certificati SSL.
Non resta quindi che configurare opportunamento nginx.
Modificare il file di configurazione di nginx
Il file di configurazione di nginx di default si chiama nginx.conf, e dovremo modificarlo in modo da aggiungere un virtual host per la porta 443, associato al nostro sito web. Se non c'è alcun virtual host per tale porta, è sufficiente duplicare il record della porta 80 (che dovremmo trovare nel file di configurazione per default) e modificare la porta da 80 a 443. Inoltre, dovremo aggiungere alcune righe aggiuntive, identificate dalle voci ssl
, ssl_certificate
e ssl_certificate_key
. Il seguente esempio chiarisce in che modo utilizzeremo queste direttive:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/miocertificato.crt;
ssl_certificate_key /etc/ssl/miachiave.key;
server_name ilmioserver.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /var/www/;
index index.html;
}
}
Nello specifico, la voce ssl_certificate
ci permette di specificare il path del certificato (o dei certificati concatenati), mentre ssl_certificate_key
punterà al path della nostra chiave privata.
Non resta che salvare le modifiche e riavviare nginx; su Linux, possiamo utilizzare il comando seguente:
# service nginx restart
oppure:
# /etc/init.d/nginx restart