Konfigurieren Sie die SSL/TLS-Verschlüsselung unter Windows und Linux
TLS bietet Netzwerksicherheit mit einem geringeren Leistungsaufwand als NCache Datenverschlüsselung. Es ist wichtig für NCache Aktivitäten, die den Datenaustausch zwischen Servern und Clients, verschiedenen Servern, Caches und Bridges erfordern. Sie können TLS selektiv verwenden, um bestimmte Datenübertragungen entsprechend Ihren Anforderungen zu sichern. Lesen Sie mehr darüber, wie es funktioniert, hier.
Note
Die folgende TLS-Konfiguration funktioniert nur für 5.3 SP2 und höher.
Wenn Sie diese Überlegungen verstehen, stellen Sie sicher, dass Sie Folgendes bereitstellen können NCache Die TLS-Verschlüsselung funktioniert reibungslos.
Note
Stellen Sie sicher, dass der Cache und die Clientprozesse gestoppt sind, bevor Sie mit den folgenden Schritten fortfahren.
So konfigurieren Sie die TLS-Verschlüsselung
NCache verfügt über zwei primäre Speicherorte auf Server- und Client-Computern, von denen es das Authentifizierungszertifikat abrufen kann: das Persönlicher Laden und für Vertrauenswürdiger Root-Speicher (TR).. Im persönlichen Speicher abgelegte Zertifikate sind für alle Benutzer auf dem lokalen Computer zugänglich, während auf Zertifikate im Benutzerspeicher nur der jeweilige Benutzer zugreifen kann NCache kann nur darauf zugreifen, wenn es mit diesem bestimmten Benutzer ausgeführt wird. Es gibt vier spezifische Geschäfte, von denen NCache kann das Authentifizierungszertifikat abrufen:
- Vertrauenswürdiger Stamm: Lokaler Computer
- Vertrauenswürdiger Stamm: Aktueller Benutzer
- Persönlich: Lokaler Computer
- Persönlich: Aktueller Benutzer
Note
Platzieren Sie das Authentifizierungszertifikat auf Maschinenebene, um Zugriffsbeschränkungen zu vermeiden.
Wenn der Server startet, beginnt er mit dem Lesen des Zertifikats, dessen Fingerabdruck in der Registrierung gespeichert ist. Es überprüft systematisch das Zertifikat in den vier oben genannten Speichern: Trusted Root (TR) sowohl des lokalen Computers als auch des aktuellen Benutzers, gefolgt von Personal sowohl des lokalen Computers als auch des aktuellen Benutzers. Der Server wählt das erste Zertifikat aus, das er in dieser Reihenfolge findet. Anschließend liest der Server dieses ausgewählte Zertifikat über seinen Fingerabdruck und teilt es mit dem Client, wodurch eine sichere Kommunikation ermöglicht wird. Dieser Prozess stellt sicher, dass der Server beim Start das entsprechende Zertifikat zur Authentifizierung von den verfügbaren Stores erhält.
Informationen zur Konfiguration der TLS-Verschlüsselung finden Sie unten.
Die folgenden Schritte sollten befolgt werden, um das TLS-Zertifikat auf einem Windows-Computer zu installieren.
Schritt-1: Melden Sie sich bei Ihrem Computer an.
Schritt-2: Erstellen (Sie können wie beschrieben ein selbstsigniertes Zertifikat erstellen hier) oder besorgen Sie sich ein TLS-Zertifikat, das einen exportierbaren privaten Schlüssel enthält.
Wichtig
- Ihr Zertifikat muss von einer Zertifizierungsstelle (CA) autorisiert sein. Um dies in Ihren Konfigurationen widerzuspiegeln, stellen Sie bitte sicher, dass im Abschnitt „Grundlegende Einschränkungen“ angegeben ist Betrefftyp=CA der Zertifikatdetails. Ebenso können Sie dies durch erreichen
-TextExtension
Attribut mit dem Wert@("2.5.29.19={text}CA=true")
beim Generieren eines Zertifikats mit dem folgenden Befehl:New-SelfSignedCertificate
. - Wir raten davon ab, selbst erstellte Zertifikate in Ihrem zu verwenden Produktion Umgebungen. Sie können sie jedoch in Ihren Testumgebungen verwenden.
Schritt-3: Importieren Sie Ihr Zertifikat wie beschrieben auf den entsprechenden Computer hier.
Schritt-4: Öffentlichkeitsarbeit/Presse Win + R, Typ mmc, und drücke Enter.
Step-5 Im MMC, im Reichen Sie das Klicken Sie im Menü Add / Remove Snap-in. Wählen Zertifikate aus der Liste der verfügbaren Snap-Ins und klicken Sie auf Speichern .
Schritt-6: Wählen Sie den Kontotyp aus Mein Benutzerkonto, Dienstkonto und Computerkonto. Sie können wählen Mein Benutzerkonto oder auf einem lokalen Computer, je nachdem, wo Sie Ihr Zertifikat platzieren.
Schritt-7: Im linken Bereich von MMC, erweitern Zertifikate und navigieren Aktueller Benutzer > Persönlich > Zertifikate um das aufgelistete TLS-Zertifikat zu finden Client-Authentifizierung als Sinn und Zweck der Sache und doppelklicken. Weitere Informationen zur Zertifikatsplatzierung finden Sie unter Überlegungen zur Zertifikatsplatzierung.
Schritt-8: Im Dialogfeld „Zertifikat“., klicken Sie auf die Registerkarte „Details“ und suchen Sie Daumenabdruck. Klicken Sie darauf und kopieren Sie die Hexadezimalzeichen aus dem Feld. Entfernen Sie alle Doppelpunkte (':') oder zusätzliche Leerzeichen im Fingerabdruck des Zertifikats, falls vorhanden. Speichern Sie den Fingerabdruck, da er für die weiteren Schritte benötigt wird.
Schritt-9: Ebenso kopieren Zertifikatsname (CN) durch Klicken auf die Schaltfläche Betreff Eigentum und kopieren nur das, was danach kommt CN = in diesem Fall „Beispiel“. Speichern Sie den Zertifikatsnamen, da er in den weiteren Schritten benötigt wird.
Schritt-10: Stellen Sie sicher, dass die NCache Der Dienst wird unter demselben Benutzer ausgeführt, der zum Importieren des Zertifikats verwendet wurde.
Schritt-11: Verwenden Sie Folgendes PowerShell-Cmdlet um die TLS-Sicherheit zu aktivieren. Weitere Informationen zu den hier verwendeten Eigenschaften finden Sie in den unten besprochenen Zertifikatselementen. Bei der Ausführung des Enable-NCacheTLS
Stellen Sie sicher, dass Sie den Befehl angeben CertificateName
und CertificateThumbprint
die Sie in den Schritten 8 und 9 gespeichert haben.
Enable-NCacheTLS -Node "20.200.20.39,20.200.20.40" -CertificateName "Example" -CertificateThumbprint "596846ab6bdd9edb03cdfbdfa1aa7b0b05e744a6" -ClientServerCommunication -UseMutualTLSForClientToServer true
- Der obige Befehl funktioniert nur, wenn Sie dies getan haben NCache auf Ihrem Client-Rechner installiert. Andernfalls müssen Sie TLS mithilfe von manuell aktivieren tls.ncconf Datei verfügbar über die NCache NuGet-Pakete in Windows wie folgt:
<tls-info>
<certificate-name>certificate-name</certificate-name>
<certificate-thumbprint>your-thumbprint</certificate-thumbprint>
<enable>false</enable>
<enable-client-server-tls>false</enable-client-server-tls>
<use-mutual-tls-for-client-to-server>false</use-mutual-tls-for-client-to-server>
</tls-info>
Wichtig
Stellen Sie sicher, dass die Konfigurationswerte auf allen Server- und Clientknoten konsistent sind, um Konnektivität und Homogenität des Clusters sicherzustellen.
Schritt-12: Sobald die gewünschten Eigenschaften festgelegt sind, starten Sie den Cache, die Clientprozesse usw. neu NCache Service. Stellen Sie sicher, dass die NCache Der Dienst wird unter demselben Benutzer ausgeführt, der zum Importieren des Zertifikats verwendet wurde.
Note
Stellen Sie nach der Aktivierung der Zertifikate Folgendes sicher:
- Das NCache Der Dienst wird unter demselben Benutzer ausgeführt, der zum Importieren des Zertifikats verwendet wurde.
- Alle Clientanwendungen werden auf 64-Bit-Rechnern ausgeführt.
Überlegungen zur Zertifikatsplatzierung
Wenn der Java-Client auf einem Windows-Rechner läuft, gibt es eine wichtige Überlegung im Hinblick auf die Zertifikatsverwaltung. Speziell, Javac unterstützt die Verwendung lokaler Maschinenzertifikate nicht nativ; Stattdessen werden Zertifikate vom aktuellen Benutzer abgerufen. Das bedeutet, dass, wenn der Client für gegenseitiges TLS konfiguriert ist, sowohl das Client-Zertifikat als auch das zugehörige Ausstellerzertifikat im Zertifikatspeicher des aktuellen Benutzers vorhanden sein müssen. In dem Szenario, in dem gegenseitiges TLS deaktiviert ist, ändert sich die Anforderung. In diesem Fall muss nur das Zertifikat der Zertifizierungsstelle (CA) im Zertifikatspeicher des aktuellen Benutzers vorhanden sein.
Note
NCache verwendet automatisch die in den Zertifikatsspeichern gespeicherten Zertifikate. Beim Start unter dem richtigen Benutzerkonto wird die NCache Der Dienst identifiziert und verwendet automatisch die relevanten Zertifikate aus den entsprechenden Zertifikatsspeichern.
Wichtig
Aussichten für WindowsWenn Sie über ein gebündeltes Zertifikat verfügen (das das Stamm- und das Zwischenzertifikat enthält), müssen Sie das Zertifikat sowohl im persönlichen als auch im vertrauenswürdigen Stammverzeichnis des lokalen Computers hinzufügen. Wenn Sie über ein separates vertrauenswürdiges Stamm- und persönliches Zertifikat verfügen, müssen Sie diese einzeln hinzufügen, dh das persönliche Zertifikat zum persönlichen Speicher und das CA-Stammzertifikat zum vertrauenswürdigen Stammspeicher.
Überprüfen Sie die erfolgreiche Client-Konnektivität über TLS
- Um die erfolgreiche Clientverbindung über TLS zu überprüfen, können Sie die Stresstest Cmdlet mithilfe der PowerShell. Das folgende Beispiel wird ausgeführt
Test-Stress
auf dem genannten Cache DemoCache.
Test-Stress -CacheName demoCache
Sie können dies auch mit dem Microsoft Network Monitor überprüfen. Falls TLS aktiviert ist, wird die Protokollname des Prozesses Powershell beim Laufen Test-Stress
wird sein TLS.
Note
UseMutualTLSForClientToServer
, EnableBridgeTLS
, EnableClientServerTLS
, EnableServerToServerTLS
und UseMutualTLSServerToServer
wird nicht funktionieren, wenn Enable
wurde nicht auf „true“ gesetzt, unabhängig davon, ob sie einzeln aktiviert wurden.
Zertifikatselemente
Um eine der genannten Konfigurationen zu verwenden, können TLS-Zertifikate von Zertifizierungsstellen (CAs) erteilt oder von Benutzern selbst signiert werden, um einen verschlüsselten Datentransport sicherzustellen. Diese Zertifikate enthalten in der Regel die folgenden Informationen:
Parameter | Datentypen | Beschreibung | Standardwert |
---|---|---|---|
-CertificateName* |
<String> |
Der Parameter CertificateName gibt den Namen des TLS-Zertifikats an, das für die Verschlüsselung verwendet werden soll. Es stellt den eindeutigen Namen bereit, der dem gewünschten TLS-Zertifikat für eine sichere Kommunikation zugeordnet ist. | - |
-CertificateThumbprint* |
<String> |
Gibt den eindeutigen Fingerabdruck des TLS-Zertifikats an, um dessen Authentizität und Integrität sicherzustellen. Es stellt den Fingerabdruckwert bereit, der dem gewünschten TLS-Zertifikat für eine sichere Kommunikation zugeordnet ist. | - |
-ClientServerCommunication |
<SwitchParameter> |
Aktiviert die TLS-Verschlüsselung für die Kommunikation zwischen Client- und Serverknoten. | falsch |
-ServerToServerCommunication |
<SwitchParameter> |
Aktiviert die TLS-Verschlüsselung für die Kommunikation zwischen Serverknoten innerhalb eines Clusters. | falsch |
-BridgeCommunication |
<SwitchParameter> |
Aktiviert die TLS-Verschlüsselung ausschließlich für die Kommunikation zwischen NCache Bridge und geografisch getrennte Caches. Wenn der Benutzer diese Sicherheit auch auf die Kommunikation zwischen den Bridge-Knoten erweitern möchte, sollte er die verwenden ServerToServerCommunication Flagge. Wenn BridgeCommunication wahr ist, stellen Sie sicher, dass die Option aktiviert ist ClientServerCommunication . Zur Zeit, NCache erfordert, dass Sie auf beiden Bridge-Knoten dasselbe Zertifikat verwenden. |
falsch |
-UseMutualTLSForClientToServer |
<String> |
Erzwingt die Anforderung eines gültigen Client-TLS-Zertifikats. Wenn diese Option aktiviert ist, müssen Clientknoten, die eine Verbindung zum Server herstellen, ein gültiges TLS-Zertifikat zur Authentifizierung vorlegen und damit die Zertifizierungsstelle dieses Zertifikats im vertrauenswürdigen Stammverzeichnis des Servers vorhanden ist. | falsch |
-UseMutualTLSForServerToServer |
<String> |
Erzwingt die Anforderung eines gültigen Server-TLS-Zertifikats während der Kommunikation. Wenn diese Option aktiviert ist, müssen die Serverknoten, die eine Verbindung zum ersten Server herstellen, zur Authentifizierung ein gültiges TLS-Zertifikat vorlegen. Darüber hinaus müssen alle Server über die Zertifizierungsstellen des anderen verfügen, um in ihren vertrauenswürdigen Stammverzeichnissen vorhanden zu sein. | Wahre |
-Node |
<String> |
Gibt eine oder mehrere IP-Adressen von Cache-Servern, Cache-Clients oder Bridge-Knoten an, auf die TLS-Einstellungen angewendet werden. Geben Sie eine durch Kommas getrennte Liste von IP-Adressen an, um TLS-Einstellungen auf den gewünschten Knoten zu aktivieren. Bitte stellen Sie sicher, dass Client-Knoten mit NCache installiert sind im Lieferumfang enthalten; für NCache Für Clients ohne Installation verwenden Sie die manuelle Konfiguration. | - |
-Credentials |
<pscredential> |
Gibt die Benutzeranmeldeinformationen an, die zum Autorisieren des Zugriffs für den angegebenen Vorgang erforderlich sind. Diese Anmeldeinformationen sollten einem Benutzer gehören, der über die entsprechenden Berechtigungen am Knoten verfügt. | - |
Problemlösung
Die Clientverbindung über TLS kann aus folgenden Gründen fehlschlagen:
- Wenn die Registrierungseinträge fehlen, schlägt die Verbindung möglicherweise fehl. Stellen Sie sicher, dass alle Einträge in der Registrierung vorgenommen werden.
- If NCache Der Dienst verfügt über andere Benutzeranmeldeinformationen als der Benutzer, der zum Importieren des Zertifikats verwendet wurde. Dies ist ungültig, wenn der für die CertificateThumbprint-Eigenschaft bereitgestellte Fingerabdruckwert falsch ist.
- Wenn der vertrauenswürdige Stamm des Clients nicht über die Zertifizierungsstelle des Servers verfügt.
- If
UseMutualTLSForClientToServer
orUseMutualTLSForServerToServer
wahr sind und der vertrauenswürdige Stamm des Servers nicht über die Zertifizierungsstelle des Clients oder des anderen Servers verfügt. - Wenn die Werte der Eigenschaften auf dem Client- und Servercomputer nicht identisch sind, erhalten Sie die Fehlermeldung „Entschlüsselungsvorgang fehlgeschlagen“.
Siehe auch
Konfigurieren Sie die Sicherheit für den Cache
Konfigurieren Sie die Sicherheit für Clientknoten
Konfigurieren Sie die Verschlüsselung für den Cache