Configurare il web server locale di OSX Yosemite per il protocollo HTTPS

 
1 apr 2015

Di seguito i passi che vi permetteranno di configurare il vostro web server locale di OSX Yosemite per lavorare con il protocollo HTTPS, non presente di default sul webserver preinstallato.

Partiamo dal presupposto che il vostro server locale si chiami "localhost" e che quindi il browser risponda correttamente a "http://localhost".

Passo 1: Creazione del certificato SSL autofirmato. Sui siti di produzione, i certificati vengono normalmente acquistati e installati. Sul nostro server di sviluppo ciò non è necessario e possiamo lavorare con dei certificati creati da noi. Ecco come fare:

  1. Creare una cartella ssl sotto /private/etc/apache2
    cd /private/etc/apache2
    sudo mkdir ssl
    cd ssl
  2. Creazione della chiave
    sudo ssh-keygen -f localhost.key
    ATTENZIONE: in questa fase vi verrà chiesto se volete creare una passphrase o lasciarla vuota. Va lasciata vuota, altrimenti a fine procedimento Apache non si riavvierà!
  3. Creazione della richiesta del certificato
    sudo openssl req -new -key localhost.key -out localhost.csr
    In questa fase vi verranno chiesti vari dati (codice paese, indirizzi, nomi, ecc...). Tutti questi valori possono assumere valori assolutamente arbitrari tranne uno: Common Name, che deve essere impostato con localhost
  4. Creazione del certificato
    sudo openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
  5. Creazione della nopass key (estranea al procedimento, ma richiesta da Apache)
    sudo openssl rsa -in localhost.key -out localhost.nopass.key

Passo 2: configurazione del webserver (Apache)

  1. Aprire il file di configurazione di Apache
    cd /etc/apache2
    sudo nano httpd.conf
  2. All'interno del file, decommentare (togliere il #) davanti alle righe:
    LoadModule ssl_module libexec/apache2/mod_ssl.so
    Include /private/etc/apache2/extra/httpd-ssl.conf

Passo 3: configurare il Virtual Host

  1. Aprire il file di configurazione SSL incluso al passo precedente
    cd /etc/apache2/extra
    sudo nano httpd-ssl.conf
  2. Rimpiazzare
    VirtualHost _default_:443
    con
    VirtualHost *:443
  3. Settare le seguenti variabili:
    DocumentRoot: "/Users/ILTUONOMEUTENTE/Sites"
    ServerName: localhost
  4. Uscire dall'editor, testare e riavviare Apache
    sudo apachectl -t (qui deve rispondervi Syntax OK)
    sudo apachectl restart

A questo punto potete visitare tutti i vostri siti locali anche attraverso il protocollo HTTPS, semplicemente specificandolo nell'indirizzo. Tuttavia il browser vi segnalerà che si tratta di una connessione non sicura (questo perchè ci siamo autogenerati il certificato), costringendoci ogni volta che visitiamo uno di questi siti locali a confermare con un clic la sua attendibilità. Alquanto noioso! Vediamo ora come evitarlo:

Passo 4: Accettazione del certificato locale (su Chrome)

  1. Visitare localhost: Chrome ci avviserà che si tratta di una connessione non sicura. Proseguiamo ugualmente, nella barra dell'indirizzo https: viene segnato in rosso barrato
  2. Cliccare sul lucchetto, si apre un popup con 2 schede, cliccare su connessione.
  3. Cliccare su Informazioni certificato, si aprirà un popup con dei dettagli e una piccola bitmap a forma di certificato.
  4. Trascinare l'icona del certificato sul desktop, verrà creato un file con icona analoga.
  5. Fare doppio clic sull'icona, si aprirà il portachiavi del Mac, con selezionato il nostro certificato proveniente da "localhost".
  6. Sulla scheda autorizzazioni, nella prima tendina scegliere "Permetti sempre".
  7. Riavviare Chrome

...ed è tutto! Ora tutti i vostri saranno navigabili indifferentemente tra http e https, e quest'ultimo correttamente certificato.

© Gabriele Pala, 2012-2014. All rights reserved. P.IVA 01137470314 - C.F. PLAGRL77S16L424T | Cell: 320 3334704 | Mail: info@fvg-informatica.it | Strada delle Acacie, 5/A - Staranzano (GO) | Privacy & Cookies
Questo sito non utilizza cookie di profilazione propri. Sono invece utilizzati cookie tecnici e di terze parti per fini operativi, statistici e pubblicitari. Per sapere a cosa servono i cookie e per impostare le proprie preferenze visitare la pagina Privacy & Cookies. Continuando la navigazione o chiudendo questo avviso, acconsenti all'uso dei cookie e ai termini riportati alla pagina Privacy Policy.
OK