Wann sollte HTTPS für die lokale Entwicklung verwendet werden?

Die Verwendung von „http://localhost“ für die lokale Entwicklung ist in den meisten Fällen in Ordnung, außer in einigen Sonderfällen. In diesem Beitrag wird erläutert, wann Sie Ihre lokale Entwicklerwebsite mit HTTPS ausführen müssen.

Weitere Informationen zur Verwendung von HTTPS für die lokale Entwicklung

In diesem Beitrag gelten Aussagen zu localhost auch für 127.0.0.1 und [::1], da beide die lokale Computeradresse, auch „Loopback-Adresse“ genannt, beschreiben. Der Einfachheit halber wird die Portnummer nicht angegeben. Wenn Sie also http://localhost sehen, lesen Sie es als http://localhost:{PORT} oder http://127.0.0.1:{PORT}.

Zusammenfassung

Bei der lokalen Entwicklung wird standardmäßig http://localhost verwendet. Service Worker, Web Authentication API und mehr funktionieren. In den folgenden Fällen benötigen Sie jedoch HTTPS für die lokale Entwicklung:

  • Probleme mit gemischten Inhalten beheben
  • HTTP/2 und höher verwenden
  • Verwendung von Drittanbieterbibliotheken oder ‑APIs, für die HTTPS erforderlich ist
  • Benutzerdefinierten Hostnamen verwenden

    Eine Liste der Fälle, in denen Sie HTTPS für die lokale Entwicklung verwenden müssen.
    Wann HTTPS für die lokale Entwicklung verwendet werden sollte

✨ Das ist alles, was du wissen musst. Wenn Sie mehr erfahren möchten, lesen Sie weiter.

Warum Ihre Entwicklerwebsite sicher sein sollte

Damit keine unerwarteten Probleme auftreten, sollte sich Ihre lokale Entwicklerwebsite so weit wie möglich wie Ihre Produktionswebsite verhalten. Wenn Ihre Produktionswebsite HTTPS verwendet, sollte sich Ihre lokale Entwicklungswebsite wie eine HTTPS-Website verhalten.

Standardmäßig http://localhost verwenden

Browser behandeln http://localhost auf besondere Weise: Obwohl es sich um HTTP handelt, verhält es sich meist wie eine HTTPS-Website.

Auf http://localhost werden Service Worker, Sensor APIs, Authentication APIs, Payments und andere Funktionen, die bestimmte Sicherheitsgarantien erfordern, unterstützt und verhalten sich genau wie auf einer HTTPS-Website.

Wann HTTPS für die lokale Entwicklung verwendet werden sollte

Es kann vorkommen, dass sich http://localhost nicht wie eine HTTPS-Website verhält. Möglicherweise möchten Sie auch einfach einen benutzerdefinierten Websitenamen verwenden, der nicht http://localhost ist.

In den folgenden Fällen müssen Sie HTTPS für die lokale Entwicklung verwenden:

  • Sie müssen ein Problem lokal debuggen, das nur auf einer HTTPS-Website, aber nicht auf einer HTTP-Website auftritt, auch nicht auf http://localhost, z. B. ein Problem mit gemischten Inhalten.
  • Sie müssen ein Verhalten, das spezifisch für HTTP/2 oder neuer ist, lokal testen oder reproduzieren. Das ist beispielsweise der Fall, wenn Sie die Ladeleistung mit HTTP/2 oder neuer testen müssen. Unsicheres HTTP/2 oder neuer wird nicht unterstützt, auch nicht auf localhost.
  • Sie müssen Drittanbieterbibliotheken oder APIs, die HTTPS erfordern (z. B. OAuth), lokal testen.
  • Sie verwenden nicht localhost, sondern einen benutzerdefinierten Hostnamen für die lokale Entwicklung, z. B. mysite.example. Normalerweise bedeutet das, dass Sie Ihre lokale Hostdatei überschrieben haben:

    Screenshot eines Terminals, in dem eine Hosts-Datei bearbeitet wird
    Bearbeiten einer Hostdatei zum Hinzufügen eines benutzerdefinierten Hostnamens.

    In diesem Fall betrachten Chrome, Edge, Safari und Firefox mysite.example standardmäßig nicht als sicher, obwohl es sich um eine lokale Website handelt. Sie verhält sich also nicht wie eine HTTPS-Website.

  • Weitere Fälle Diese Liste ist nicht vollständig. Wenn Sie auf einen Fall stoßen, der hier nicht aufgeführt ist, werden Sie es merken: Auf http://localhost funktioniert etwas nicht oder es verhält sich nicht wie auf Ihrer Produktionswebsite. 🙃

In all diesen Fällen müssen Sie HTTPS für die lokale Entwicklung verwenden.

HTTPS für die lokale Entwicklung verwenden

Wenn Sie HTTPS für die lokale Entwicklung verwenden müssen, lesen Sie den Artikel HTTPS für die lokale Entwicklung verwenden.

Tipps, wenn Sie einen benutzerdefinierten Hostnamen verwenden

Wenn Sie einen benutzerdefinierten Hostnamen verwenden, z. B. durch Bearbeiten der Hosts-Datei:

  • Verwenden Sie keinen einfachen Hostnamen wie mysite, da es sonst zu Problemen kommen kann, wenn es eine Top-Level-Domain (TLD) mit demselben Namen (mysite) gibt. Das ist nicht unwahrscheinlich: 2020 gab es über 1.500 TLDs und die Liste wächst weiter. coffee, museum, travel und viele Namen großer Unternehmen (vielleicht sogar das Unternehmen, für das Sie arbeiten) sind TLDs. Die vollständige Liste findest du hier.
  • Verwenden Sie nur Domains, die Ihnen gehören oder die für diesen Zweck reserviert sind. Wenn Sie keine eigene Domain haben, können Sie entweder test oder localhost (mysite.localhost) verwenden. test wird in Browsern nicht speziell behandelt, localhost hingegen schon: Chrome und Edge unterstützen http://<name>.localhost sofort und es verhält sich sicher, wenn localhost dies tut. Probieren Sie es aus: Führen Sie eine beliebige Website auf localhost aus und greifen Sie in Chrome oder Edge auf http://<whatever name you like>.localhost:<your port> zu. Das ist bald möglicherweise auch in Firefox und Safari möglich. Der Grund dafür, dass Sie Subdomains wie mysite.localhost verwenden können, ist, dass localhost nicht nur ein Hostname, sondern auch eine vollständige TLD wie com ist.

Weitere Informationen

Vielen Dank an alle Reviewer für ihre Beiträge und ihr Feedback, insbesondere an Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood und Jake Archibald. 🙌

Hero-Image von @moses_lee auf Unsplash, bearbeitet.