Wenn Sie Servicemitarbeiter auf einem Clientgerät testen möchten, auf dem kein Webserver auf localhost ausgeführt werden kann, lautet die allgemeine Technik wie folgt:
- Geben Sie Ihrem Server einen Hostnamen.
- Geben Sie diesem Hostnamen ein Zertifikat.
- Stellen Sie sicher, dass IPs der Zertifizierungsstelle vertrauen, die dieses Zertifikat ausgestellt hat.
Das ist aber leichter gesagt als getan. In einer AMA zu Reddit im November 2016 gab ein Vertreter von Let's Encrypt zu , dass HTTPS in einem privaten LAN "eine wirklich schwierige Frage ist, und ich denke, bisher hat niemand eine zufriedenstellende Antwort gefunden."
Zu den gängigen Methoden, um Ihrem Computer einen Hostnamen zu geben, gehört die Angabe einer stabilen internen IP-Adresse, die sich nicht täglich oder jedes Mal ändert, wenn Sie Ihre Internet-Gateway-Appliance aus- und wieder einschalten. Sie müssen den DHCP-Server in Ihrem Netzwerk konfigurieren, normalerweise den in Ihrem Gateway, um eine "Reservierung" einzurichten, die eine bestimmte private Adresse (normalerweise innerhalb 10/8
oder 192.168/16
) mit der MAC-Adresse der Ethernet-Karte Ihrer Entwicklungsarbeitsstation verknüpft . Lesen Sie dazu das Handbuch Ihres Gateways.
Jetzt, da Ihre Entwicklungsarbeitsstation eine stabile IP-Adresse hat, gibt es einen Zeit-Geld-Kompromiss. Wenn Sie bereit sind, die erweiterte Verwendung von DNS und OpenSSL zu erlernen und ein Stammzertifikat auf allen Geräten zu installieren, mit denen Sie testen möchten:
- Führen Sie einen internen DNS-Server in Ihrem Netzwerk aus. Dies kann sich auf Ihrem Gateway oder auf Ihrer Entwicklungsarbeitsstation befinden.
- Konfigurieren Sie Ihren DNS-Server so, dass er für einige erfundene TLDs autorisierend und für andere TLDs rekursiv ist.
- Geben Sie der privaten IP-Adresse Ihrer Entwicklungsarbeitsstation einen stabilen Namen. Dies gibt ihm einen internen Namen.
- Konfigurieren Sie Ihren DHCP-Server so, dass er die Adresse dieses DNS-Servers an andere Geräte weitergibt, die Leases erhalten.
- Verwenden Sie auf Ihrer Entwicklungsarbeitsstation OpenSSL, um Schlüsselpaare für eine private Zertifizierungsstelle und den Webserver zu generieren .
- Stellen Sie mit OpenSSL ein Stammzertifikat für die Zertifizierungsstelle und ein Zertifikat für den internen Namen des Webservers aus.
- Konfigurieren Sie HTTPS auf dem Webserver auf Ihrer Entwicklungsarbeitsstation mithilfe dieses Zertifikats.
- Installieren Sie das Stammzertifikat der Zertifizierungsstelle als vertrauenswürdiges Stammzertifikat auf allen Geräten.
- Greifen Sie auf allen Geräten auf diesen internen Namen zu.
Wenn Sie kein Stammzertifikat hinzufügen oder lokales DNS nicht steuern können, z. B. wenn Sie vorhaben, mit Geräten anderer Benutzer (BYOD) oder mit gesperrten Browsern zu testen, bei denen Benutzer keine vertrauenswürdigen Stammzertifikate hinzufügen können, z Für Videospielkonsolen benötigen Sie einen vollqualifizierten Domainnamen (FQDN):
- Kaufen Sie eine Domain bei einem Registrar, der DNS mit einer API anbietet . Dies kann direkt innerhalb einer TLD oder von einem der dynamischen DNS-Anbieter erfolgen, die es in die öffentliche Suffixliste geschafft haben. (Dynamische DNS-Anbieter ohne PSL sind aufgrund der von Let's Encrypt auferlegten Ratenbeschränkungen nicht akzeptabel .)
- Zeigen Sie in der Zonendatei dieser Domain auf an
A
die private IP-Adresse Ihrer Entwicklungsarbeitsstation. Dadurch erhält Ihre Entwicklungsarbeitsstation einen vollqualifizierten Domänennamen.
- Verwenden Sie Dehydrated , einen ACME-Client, der das unterstützt
dns-01
Herausforderung , um ein Zertifikat für diesen vollqualifizierten Domänennamen von der Let's Encrypt-Zertifizierungsstelle zu erhalten.
- Konfigurieren Sie HTTPS auf dem Webserver auf Ihrer Entwicklungsarbeitsstation mithilfe dieses Zertifikats.
- Greifen Sie auf allen Geräten auf diesen Namen zu.