Quand utiliser HTTPS pour le développement local ?

L'utilisation de http://localhost pour le développement local est généralement acceptable, sauf dans certains cas particuliers. Cet article explique quand vous devez exécuter votre site de développement local avec HTTPS.

Maud Nalpas
Maud Nalpas

Consultez également Utiliser HTTPS pour le développement local.

Dans cet article, les instructions concernant localhost sont également valables pour 127.0.0.1 et [::1], car elles décrivent toutes les deux l'adresse de l'ordinateur local, également appelée "adresse de bouclage". De plus, pour simplifier les choses, le numéro de port n'est pas spécifié. Par conséquent, lorsque vous voyez http://localhost, lisez-le comme http://localhost:{PORT} ou http://127.0.0.1:{PORT}.

Résumé

Lorsque vous développez en local, utilisez http://localhost par défaut. Les services workers, l'API Web Authentication et plus encore fonctionneront. Toutefois, dans les cas suivants, vous aurez besoin de HTTPS pour le développement local:

  • Déboguer les problèmes liés au contenu mixte
  • Utiliser HTTP/2 et versions ultérieures
  • Utiliser des bibliothèques ou des API tierces qui nécessitent HTTPS
  • Utiliser un nom d'hôte personnalisé

    Liste des cas où vous devez utiliser HTTPS pour le développement local.
    Cas d'utilisation de HTTPS pour le développement local

✨ Voilà tout ce que vous devez savoir. Pour en savoir plus, lisez la suite.

Pourquoi votre site de développement doit-il se comporter de manière sécurisée ?

Pour éviter de rencontrer des problèmes inattendus, vous devez vous assurer que votre site de développement local se comporte autant que possible comme votre site Web de production. Par conséquent, si votre site Web de production utilise HTTPS, vous souhaitez que votre site de développement local se comporte comme un site HTTPS.

Utiliser http://localhost par défaut

Les navigateurs traitent http://localhost de manière spéciale: bien qu'il s'agisse d'un protocole HTTP, il se comporte principalement comme un site HTTPS.

Sur http://localhost, les services workers, les API de capteurs, les API d'authentification, les paiements et les autres fonctionnalités qui nécessitent certaines garanties de sécurité sont compatibles et se comportent exactement comme sur un site HTTPS.

Quand utiliser HTTPS pour le développement local ?

Il peut arriver que http://localhost ne se comporte pas comme un site HTTPS. Vous pouvez également simplement souhaiter utiliser un nom de site personnalisé qui ne soit pas http://localhost.

Vous devez utiliser HTTPS pour le développement local dans les cas suivants:

  • Vous devez déboguer localement un problème qui ne se produit que sur un site Web HTTPS, mais pas sur un site HTTP, même pas http://localhost, par exemple un problème de contenu mixte.
  • Vous devez tester ou reproduire localement un comportement spécifique à HTTP/2 ou version ultérieure. Par exemple, si vous devez tester les performances de chargement sur HTTP/2 ou version ultérieure. Le protocole HTTP/2 non sécurisé ou version ultérieure n'est pas compatible, même sur localhost.
  • Vous devez tester localement les bibliothèques ou API tierces qui nécessitent le protocole HTTPS (par exemple, OAuth).
  • Vous n'utilisez pas localhost, mais un nom d'hôte personnalisé pour le développement local, par exemple mysite.example. En règle générale, cela signifie que vous avez ignoré votre fichier hosts local:

    Capture d'écran d'un terminal qui modifie un fichier hosts
    Modification d'un fichier hosts pour ajouter un nom d'hôte personnalisé.

    Dans ce cas, Chrome, Edge, Safari et Firefox ne considèrent pas mysite.example comme sécurisé par défaut, même s'il s'agit d'un site local. Il ne se comportera donc pas comme un site HTTPS.

  • Autres cas ! Cette liste n'est pas exhaustive, mais si vous rencontrez un cas qui n'y figure pas, vous saurez que des problèmes vont se produire sur http://localhost ou que votre site de production ne se comportera pas tout à fait comme prévu. 🙃

Dans tous ces cas, vous devez utiliser HTTPS pour le développement local.

Utiliser HTTPS pour le développement local

Si vous devez utiliser HTTPS pour le développement local, consultez Utiliser HTTPS pour le développement local.

Conseils si vous utilisez un nom d'hôte personnalisé

Si vous utilisez un nom d'hôte personnalisé, par exemple en modifiant votre fichier hosts:

  • N'utilisez pas de nom d'hôte simple comme mysite, car si un domaine de premier niveau (TLD) porte le même nom (mysite), vous rencontrerez des problèmes. Et ce n'est pas si improbable: en 2020, il existe plus de 1 500 TLD, et la liste ne cesse de s'allonger. coffee, museum, travel et de nombreux noms de grandes entreprises (peut-être même celui de l'entreprise dans laquelle vous travaillez) sont des domaines de premier niveau. Cliquez ici pour consulter la liste complète.
  • N'utilisez que des domaines qui vous appartiennent ou qui sont réservés à cet effet. Si vous ne possédez pas de domaine, vous pouvez utiliser test ou localhost (mysite.localhost). test n'est pas traité de manière spéciale dans les navigateurs, mais localhost l'est: Chrome et Edge sont compatibles avec http://<name>.localhost dès la sortie de la boîte, et il se comporte de manière sécurisée lorsque localhost le fait. Essayez: exécutez n'importe quel site sur localhost et accédez à http://<whatever name you like>.localhost:<your port> dans Chrome ou Edge. Il est possible que cela soit bientôt possible dans Firefox et Safari également. Vous pouvez utiliser des sous-domaines comme mysite.localhost, car localhost n'est pas seulement un nom d'hôte: il s'agit également d'un TLD complet, comme com.

En savoir plus

Nous remercions tous les contributeurs et les commentateurs, en particulier Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood et Jake Archibald. 🙌

Image héros par @moses_lee sur Unsplash, modifiée.