Quando utilizzare HTTPS per lo sviluppo locale

L'utilizzo di http://localhost per lo sviluppo locale è accettabile nella maggior parte dei casi, tranne in alcuni casi speciali. Questo post spiega quando devi eseguire il tuo sito di sviluppo locale con HTTPS.

Maud Nalpas
Maud Nalpas

Consulta anche Come utilizzare HTTPS per lo sviluppo locale.

In questo post, le affermazioni su localhost sono valide anche per 127.0.0.1 e [::1], poiché descrivono entrambi l'indirizzo del computer locale, chiamato anche "indirizzo loopback". Inoltre, per semplificare, il numero di porta non è specificato. Quindi, quando vedi http://localhost, leggi http://localhost:{PORT} o http://127.0.0.1:{PORT}.

Quando sviluppi localmente, utilizza http://localhost per impostazione predefinita. Service Worker, API Web Authentication e altro ancora funzioneranno. Tuttavia, nei seguenti casi, avrai bisogno di HTTPS per lo sviluppo locale:

  • Debug dei problemi relativi ai contenuti misti
  • Utilizzo di HTTP/2 e versioni successive
  • Utilizzo di API o librerie di terze parti che richiedono HTTPS
  • Utilizzo di un nome host personalizzato

    Un elenco di casi in cui devi utilizzare HTTPS per lo sviluppo locale.
    Quando utilizzare HTTPS per lo sviluppo locale.

✨ Ecco tutto ciò che devi sapere. Se vuoi saperne di più, continua a leggere.

Perché il tuo sito di sviluppo deve comportarsi in modo sicuro

Per evitare problemi imprevisti, è consigliabile che il sito di sviluppo locale si comporti il più possibile come il sito web di produzione. Pertanto, se il tuo sito web di produzione utilizza HTTPS, devi fare in modo che il sito di sviluppo locale si comporti come un sito HTTPS.

Utilizza http://localhost per impostazione predefinita

I browser trattano http://localhost in modo speciale: anche se è HTTP, si comporta per lo più come un sito HTTPS.

Su http://localhost, i Service Worker, le API di sensori, le API di autenticazione, i pagamenti e altre funzionalità che richiedono determinate garanzie di sicurezza sono supportati e si comportano esattamente come su un sito HTTPS.

Quando utilizzare HTTPS per lo sviluppo locale

Potresti riscontrare casi speciali in cui http://localhost non si comporta come un sito HTTPS oppure potresti semplicemente voler utilizzare un nome di sito personalizzato diverso da http://localhost.

Devi utilizzare HTTPS per lo sviluppo locale nei seguenti casi:

  • Devi eseguire il debug locale di un problema che si verifica solo su un sito web HTTPS, ma non su un sito HTTP, nemmeno su http://localhost, ad esempio un problema di contenuti misti.
  • Devi testare o riprodurre localmente un comportamento specifico per HTTP/2 o versioni successive. Ad esempio, se devi testare le prestazioni di caricamento su HTTP/2 o versioni successive. HTTP/2 non sicuro o versioni successive non sono supportati, nemmeno su localhost.
  • Devi testare localmente le API o le librerie di terze parti che richiedono HTTPS (ad esempio OAuth).
  • Non utilizzi localhost, ma un nome host personalizzato per lo sviluppo locale, ad esempio mysite.example. In genere, significa che hai sostituito il file hosts locale:

    Screenshot di un terminale che modifica un file hosts
    Modifica di un file hosts per aggiungere un nome host personalizzato.

    In questo caso, per impostazione predefinita Chrome, Edge, Safari e Firefox non considerano mysite.example sicuro, anche se si tratta di un sito locale. Pertanto, non si comporterà come un sito HTTPS.

  • Altri casi. Questo non è un elenco esaustivo, ma se riscontri un caso non elencato qui, tieni presente che si verificheranno dei problemi il giorno http://localhost o il sito non si comporterà esattamente come il tuo sito di produzione. 🙃

In tutti questi casi, devi utilizzare HTTPS per lo sviluppo locale.

Come utilizzare HTTPS per lo sviluppo locale

Se devi utilizzare HTTPS per lo sviluppo locale, consulta Come utilizzare HTTPS per lo sviluppo locale.

Suggerimenti se utilizzi un nome host personalizzato

Se utilizzi un nome host personalizzato, ad esempio modificando il file hosts:

  • Non utilizzare un nome host senza elementi aggiuntivi come mysite, perché se esiste un dominio di primo livello (TLD) con lo stesso nome (mysite), potresti riscontrare problemi. E non è così improbabile: nel 2020 esistono oltre 1500 TLD e l'elenco è in crescita. coffee, museum, travel e molti nomi di grandi aziende (forse anche la tua) sono domini di primo livello. Consulta l'elenco completo qui.
  • Utilizza solo i tuoi domini o quelli riservati a questo scopo. Se non hai un dominio, puoi utilizzare test o localhost (mysite.localhost). test non ha un trattamento speciale nei browser, ma localhost sì: Chrome ed Edge supportano http://<name>.localhost out of the box e si comporteranno in modo sicuro quando lo farà localhost. Prova: esegui qualsiasi sito su localhost e accedi a http://<whatever name you like>.localhost:<your port> in Chrome o Edge. A breve questa opzione potrebbe essere disponibile anche in Firefox e Safari. Il motivo per cui puoi farlo (avere sottodomini come mysite.localhost) è che localhost non è solo un nome host: è anche un TLD completo, come com.

Scopri di più

Un ringraziamento a tutti i revisori per i contributi e i feedback, in particolare a Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood e Jake Archibald. 🙌

Immagine hero di @moses_lee su Unsplash, modificata.