Blog

Come avviare un’istanza con certificato SSL in locale

Come avviare un'istanza con certificato SSL in locale

Sui server in produzione già da tempo Genropy consiglia la configurazione di un certificato SSL con Certbot, proprio come ultimo step del deploy di un applicativo. A volte ci farebbe tuttavia comodo poter avviare anche in locale un’istanza in https anziché in http, soprattutto quando stiamo testando delle chiamate esterne al nostro applicativo, che spesso richiedono un certificato SSL.

È possibile avviare anche in locale un’istanza Genropy in https, previa generazione di un certificato SSL. Vediamo quindi i pochi semplici step necessari per predisporre la nostra macchina per questa possibilità, e come lanciare l’istanza in https.


Generare un certificato SSL in locale con mkcert

Il primo passo è la generazione di un certificato SSL che verrà usato in locale, utilizzando mkcert, un semplice tool per la generazione di certificati attendibili a livello locale.

Per prima cosa installiamo mkcert:

mkcert --install

Procediamo poi a generare un certificato per il dominio “localhost”:

mkcert localhost

Si noti che generando un certificato per l’ambito “localhost” troveremo la nostra istanza Genropy all’indirizzo:

https://localhost:XXXX/

dove XXXX corrisponde alle porte su cui la stiamo avviando (di default 8080).

È possibile in alternativa generare il certificato sull’host 127.0.0.1, in quel caso dovremo tuttavia specificare quale certificato e quale chiave usare al lancio dell’istanza, come vedremo in seguito

Infine, spostiamo questo certificato così generato nella cartella .gnr:

mv localhost*pem .gnr

Lancio dell’istanza con protocollo https

Una volta generato il certificato, sarà sufficiente lanciare il server con l’attributo --ssl:

gnrwsgiserve sandboxpg --ssl
Starting server - listening on https://localhost:8080	Debug mode: On, SSL mode: On

Così facendo il server andrà a cercare il certificato e la chiave localhost dentro la cartella .gnr, e ci restituirà le informazioni crittografate utilizzando il protocollo https. Google Chrome ci mostrerà come di consueto il lucchetto, a indicare che il nostro sito anche in locale è sicuro:

Avvio sicuro con https

Si noti che è possibile utilizzare un qualunque certificato, indicando certificato e chiave come segue:

gnrwsgiserve sandboxpg --ssl_cert .gnr/127.0.0.1.pem --ssl_key .gnr/127.0.0.1-key.pem
Starting server - listening on https://127.0.0.1:8080	Debug mode: On, SSL mode: On, ('.gnr/127.0.0.1.pem', '.gnr/127.0.0.1-key.pem')

Per maggiori dettagli sull’avvio di un applicativo con il comando gnrwsgiserve si rimanda alla sezione dedicata del Corso Base di Genropy.


Hai curiosità/domande sul funzionamento di un applicativo Genropy in https? Chiedici quello che vuoi su AskGenropy!