Quando utilizzare HTTPS per lo sviluppo locale

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

Consulta anche: Come utilizzare HTTPS per lo sviluppo locale.

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

Riepilogo

Quando sviluppi in locale, utilizza http://localhost per impostazione predefinita. I service worker, l'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 librerie o API di terze parti che richiedono HTTPS
  • Utilizzo di un nome host personalizzato

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

✨ Questo è tutto ciò che devi sapere. Se ti interessano maggiori dettagli, continua a leggere.

Perché il 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 sito web di produzione utilizza HTTPS, è consigliabile 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 principalmente come un sito HTTPS.

Su http://localhost, i service worker, le API dei 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 del sito personalizzato diverso da http://localhost.

Nei seguenti casi, devi utilizzare HTTPS per lo sviluppo locale:

  • Devi eseguire il debug in 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 relativo ai contenuti misti.
  • Devi testare o riprodurre localmente un comportamento specifico di HTTP/2 o versioni successive. Ad esempio, se devi testare le prestazioni di caricamento su HTTP/2 o versioni successive. HTTP/2 o versioni successive non sicure non sono supportate, nemmeno su localhost.
  • Devi testare localmente librerie o API 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, ciò significa che hai sostituito il file hosts locale:

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

    In questo caso, Chrome, Edge, Safari e Firefox per impostazione predefinita 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, saprai che le cose non funzioneranno su http://localhost o che 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 la sezione 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 semplice come mysite perché se esiste un dominio di primo livello (TLD) con lo stesso nome (mysite), si verificheranno 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 (magari anche l'azienda per cui lavori) sono TLD. Consulta l'elenco completo qui.
  • Utilizza solo i domini di tua proprietà o riservati a questo scopo. Se non hai un tuo 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 immediatamente e si comporteranno in modo sicuro quando lo fa localhost. Prova: esegui qualsiasi sito su localhost e accedi a http://<whatever name you like>.localhost:<your port> in Chrome o Edge. Presto potrebbe essere possibile anche in Firefox e Safari. Il motivo per cui puoi farlo (avere sottodomini come mysite.localhost) è che localhost non è solo un nome host, ma anche un TLD completo, come com.

Scopri di più

Ringraziamo di cuore tutti i revisori per i loro contributi e feedback, in particolare Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood e Jake Archibald. 🙌

Immagine promozionale di @moses_lee su Unsplash, modificata.