HTTPS-Zertifikat
Für den Zugriff auf die Web API und ihre integrierte API-Dokumentation ist ein HTTPS-Zertifikat erforderlich.
Ein selbstsigniertes Zertifikat wird automatisch installiert und bei der Installation verwendet (Computerzertifikate). Alternativ kann auch ein Let's Encrypt-Zertifikat verwendet werden.
Verwendung von Let's Encrypt (ACME-Protokoll)
Let's Encrypt ermöglicht Ihnen die Verwaltung von Zertifikaten für eine bestimmte Domäne. Bestehende Zertifikate werden durch die Überprüfung des Ablaufdatums auf dem neuesten Stand gehalten und ein neues Zertifikat wird installiert, wenn keines vorhanden ist.
Wie Sie Let's Encrypt verwenden:
-
Installieren Sie die Web API.
-
Konfigurieren Sie Ihr Netzwerk (siehe Netzwerk-Konfiguration).
-
Bearbeiten Sie den Abschnitt
Let's Encrypt
in der Datei appsettings.json (siehe Let's Encrypt Konfiguration). -
Starten Sie den Dienst neu.
-
Stellen Sie sicher, dass das Let's Encrypt-Zertifikat installiert ist.
-
Fügen Sie der Datei appsettings.json das neue zu verwendende Zertifikat hinzu (siehe Zertifikat verwenden).
-
Starten Sie den Dienst neu.
-
Rufen Sie die Swagger-Webseite über den neuen Domänennamen auf, um sicherzustellen, dass das Zertifikat verwendet wird (siehe HTTPS REST API).
Netzwerk-Konfiguration
Um ein TLS-Zertifikat für eine Domäne zu erstellen und zu verwalten, müssen Sie Ihr Netzwerk richtig konfigurieren. Der IPv4-Listener des Let's Encrypt-Moduls reagiert auf Port 13020. Der Dienst führt eine HTTP-01-Abfrage durch, um die Zertifikatsanforderung zu validieren.
Die HTTP-01-Abfrage kann nur auf Port 80 durchgeführt werden. Sie müssen daher auf Ihrem Internet-Router/Firewall eine Portweiterleitung von Port 80 auf den internen Port 13020 des Web API Servers konfigurieren.
Der Server muss Port 13020 für diese Kommunikation öffnen.
Let's Encrypt Konfiguration
Um das Let's Encrypt-Modul zu aktivieren, müssen Sie die Datei appsettings.json konfigurieren.
Konfigurieren Sie den Abschnitt LetsEncrypt
und setzen Sie den Parameter active
auf true
. Ein Beispiel kann wie folgt aussehen:
"LetsEncrypt": {
"active": true,
"staging": false,
"user": "anybody.surname@company.com",
"domain": "sample.dns.net",
"chronSchedule": "0 0 * * * ?",
"renewbeforeexpireddays": 30
},
Sie können folgende Parameter im Abschnitt LetsEncrypt
in der Datei appsettings.json konfigurieren:
Einstellung |
Beschreibung |
---|---|
activ |
Um das Let's Encrypt-Modul (ACME-Modul) zu aktivieren, setzen Sie diesen Parameter auf Um das generierte Zertifikat zu verwenden, ändern Sie den Subject-Parameter von |
staging |
Let's Encrypt bietet eine Testumgebung für Testzwecke. Wenn Sie diesen Parameter auf Verwenden Sie diesen Parameter nicht zur Erstellung von Zertifikaten. Wenn Sie die Testumgebung verwenden, wird ein ungültiges Zertifikat erstellt, aber nicht installiert. Um ein gültiges Zertifikat anzufordern, setzen Sie den Parameter auf Beachten Sie, dass die Anzahl der Zertifikate für einen Domainnamen durch Let's Encrypt begrenzt ist. |
user |
Die E-Mail-Adresse des Benutzers, der ein Zertifikat anfordert. Das Modul erstellt entweder ein neues Konto oder verwendet automatisch das bereits bestehende Konto. Die E-Mail-Adresse wird von dem Dienst Let's Encrypt verwendet. Weitere Informationen finden Sie unter: https://letsencrypt.org/docs/expiration-emails/ |
domain |
Das vom Dienst verwaltete Zertifikat wird für die angegebene Domäne ausgestellt. Es ist auch das Subject des Zertifikats, wenn es installiert wird, und wird verwendet, um die Zertifikate in der Aktualisierungsroutine des Moduls zu identifizieren. |
chronSchedule |
Der Dienst überprüft regelmäßig die Gültigkeit des Zertifikats. Der Parameter |
renewbeforeexpireddays |
Der Parameter |
Verwenden Sie die Testumgebung von Let's Encrypt, um sicherzustellen, dass alle anderen Einstellungen und die Netzwerkkonfiguration korrekt sind. Anschließend können Sie die Testumgebung sicher deaktivieren. Weitere Informationen zur Verwendung von Let's Encrypt finden Sie in den Web API Protokolldateien (siehe Service-Protokolldateien).
Zertifikat verwenden
Um ein Zertifikat auszuwählen, konfigurieren Sie den Abschnitt HttpsInlineCertStore
in der Datei appsettings.json. Der Dienst lädt das Zertifikat einmal beim Start. Um das Zertifikat zu verwenden, setzen Sie den Parameter Subject
auf das Subject des Zertifikats. Standardmäßig wird das selbstsignierte Zertifikat geladen.
Erstellen Sie zunächst ein Zertifikat mit Let's Encrypt und passen Sie dann den Subject
für HttpsInlineCertStore
an. Solange kein Zertifikat gefunden wird, wird der Web API Dienst nicht gestartet.
Das Let's Encrypt-Modul erstellt ein Zertifikat für den Domänennamen Ihres Systems. Diese Domäne ist auch das Subject des generierten Zertifikats.
Stellen Sie sicher, dass der Parameter Url
nicht für eine bestimmte Domäne konfiguriert ist. Verwenden Sie https://*:13333
oder https://0.0.0.0:13333
(Port 13333 kann in einen beliebigen anderen Port geändert werden), um eine beliebige Domäne des Servers abzuhören. Der Dienst ist lokal über localhost (127.0.0.1) oder extern über den konfigurierten Domainnamen erreichbar.
"HttpsInlineCertStore": {
"Url": "https://*:13333",
"Certificate": {
"Subject": "sample.dns.net",
"Store": "My",
"Location": "LocalMachine"
}
},
Weitere Informationen
Lokale Portweiterleitung
Wenn Sie eine lokale Portweiterleitung auf dem System benötigen, auf dem die Web API installiert ist, verwenden Sie den folgenden cmd-Befehl:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=13020 connectaddress=127.0.0.1
DynDNS
Sie können einen DynDNS-Dienst nutzen, um einen Domänennamen für Ihre Einwahlverbindungen zu erhalten. Die meisten Router unterstützen mehrere DnyDNS-Dienste. DuckDNS.org ist beispielsweise ein kostenloser und benutzerfreundlicher Dienst, den Sie dafür nutzen können.
Fritz Box Benutzer
Wenn Sie die MyFritz-Funktion Ihrer Fritz!Box aktivieren, hat die Fritz!Box einen integrierten Domainnamen. Damit erhalten Sie einen Domänennamen für Ihre Einwahlverbindung, z. B.: 1234abcd.myfritz.net
.
Um diesen Domainnamen verwenden zu können, müssen Sie IPv6 im Internetanschluss deaktivieren. Andernfalls funktioniert die Portweiterleitung von Port 80 auf IPv4 nicht und leitet Sie immer auf die Anmeldeseite der Fritz Box um.
Warum sind HTTPS-Zertifikate wichtig?
Die Erstellung eines SSL-Zertifikats für eine HTTPS-Verbindung trägt dazu bei, die Sicherheit und den Datenschutz Ihrer Inhalte zu gewährleisten und die Sicherheitsstandards für Cyber-Security zu erfüllen.
Vollständige Verschlüsselung der übertragenen Daten
Eine HTTPS-Verbindung mit SSL-Zertifikat bietet eine zusätzliche Sicherheitsstufe für Ihr G-Core System sowie für den Operator. Durch das SSL-Zertifikat werden die über das Internet übertragenen Daten vollständig verschlüsselt, um die sensiblen Informationen vor dem Abfangen und der Manipulation durch Dritte zu schützen.
Sichere Verbindung in Webbrowsern
In weitgehend allen Webbrowsern werden HTTP-Verbindungen als unsicher ausgewiesen. Der Webbrowser Firefox bietet sogar die erweiterte Sicherheitsfunktion "Nur-HTTPS-Modus". Tendenziell werden HTTP-Verbindungen künftig nicht mehr zugelassen oder der Zugriff stark eingeschränkt.
Eigenverantwortung und Kontrolle über Ihre Inhalte
Indem Sie Ihre eigenen SSL-Zertifikate generieren, behalten Sie die Eigenverantwortung und Kontrolle über Ihre Inhalte. Dies gewährleistet, dass Ihre Inhalte sicher und entsprechend Ihren spezifischen Anforderungen übertragen werden.