Konfigurieren der gegenseitigen Authentifizierung
Die gegenseitige Authentifizierung stellt Vertrauen durch den Austausch von SSL-Zertifikaten (Secure Sockets Layer) her.
Während des SSL-Handshake stellt der Server dem Client sein Zertifikat vor. Anschließend kann der Server je nach Konfiguration ein Zertifikat vom Client anfordern. Sowohl der Server als auch der Client führen Zertifikatvalidierungsverfahren durch, um die Authentizität und Integrität der vorgelegten Zertifikate sicherzustellen.
Nach einer erfolgreichen Validierung werden vor dem Initiieren der HTTPS-Verbindung Bestätigungen ausgetauscht.
Administratoren führen die vorbereitenden Arbeiten durch, um den Clientschlüsselspeicher einzurichten und Zertifikate zu generieren, bevor Zertifizierungsanforderungen erfüllt werden.
Erstellen des Schlüsselspeichers
Die Instanz unterstützt derzeit das Hochladen einer Java Key Store-Datei, die einen privaten Schlüssel und ein öffentliches Zertifikatpaar enthält. Das öffentliche Zertifikat enthält die vollständige Kette einschließlich des Stammzertifikats.
So richten Sie Ihren Clientschlüsselspeicher ein:
- Sie benötigen ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde.
- Ihr API-Endpunktanbieter kann Sie beim Generieren des Schlüsselspeichers unterstützen.
Wenn Sie den Schlüsselspeicher generieren müssen, umfasst der Prozess mehrere Schritte unter Verwendung von Befehlen der Befehlszeilenschnittstelle, um eine neue Schlüsselspeicherdatei zu generieren, eine Zertifikatsignaturanforderung (Certificate Signing Request, CSR) zu erstellen und signierte Zertifikate zu importieren. Bevor Sie das primäre Zertifikat Ihrer Domäne importieren, sollten alle Stamm- oder Zwischenzertifikate zuerst importiert werden. Hier ist eine Schritt-für-Schritt-Anleitung:
- Generieren Sie einen Java-Schlüsselspeicher und ein Schlüsselpaar.
keytool -genkey -alias mydomain -keyalg RSA -keystore my.keystore - Generieren Sie eine CSR für einen vorhandenen Java-Schlüsselspeicher.
keytool -certreq -alias mydomain -keystore my.keystore -file mydomain.csr - Senden Sie die CSR an Ihre CA-Signaturstelle, um die Zertifikatdateien zu signieren und zurückzugeben, einschließlich Zwischen- und Stammzertifikaten sowie dem signierten Zertifikat.
- Importieren Sie ein CA-Zertifikat einer Stamm- oder Zwischenzertifizierungsstelle in einen vorhandenen Java-Schlüsselspeicher.
keytool -import -trustcacerts -alias root -file Thawte.crt -keystore my.keystoreHinweis:Sie können alle Zertifikate in einer Datei bündeln und importieren. Dies ist die bevorzugte Option. Auf diese Weise können Sie 5 überspringenkeytool -import -alias mydomain -file merged.crt -keystore my.keystore - Importieren Sie ein signiertes primäres Zertifikat in einen vorhandenen Java-Schlüsselspeicher.
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore my.keystore
Einrichtung des Schlüsselspeichers
- Geben Sie einen Zertifikatnamenein.
- Speichern Sie den Schlüsselspeicher als Aktiv.
- Legen Sie den Typ = Java-Schlüsselspeicher fest.
- Geben Sie ein Schlüsselspeicher-Passwort an. Dies ist das Passwort, das zum Erstellen des Schlüsselspeichers verwendet wurde.
Angeben eines vertrauenswürdigen Serverzertifikats
Während einer ausgehenden SSL-Verbindung, bei der es sich um einen HTTPS-Webservice-Aufruf handelt, kann ein vom Service Provider bereitgestelltes Zertifikat angegeben werden, das die Gültigkeit des Service Providers während der SSL-Verbindung sicherstellt. Beispiel: Ein Browser, der versucht, eine Verbindung zu einem sicheren Service herzustellen, der sich durch ein Zertifikat identifiziert.
Durch das Hochladen des vertrauenswürdigen Serverzertifikats stellt ServiceNow sicher, dass der Service, mit dem eine Verbindung hergestellt wird, gültig und sicher ist.
Erstellen Sie einen neuen Zertifikateintrag mit dem Typ „Trust Store-Zertifikat“, und hängen Sie ein DER-formatiertes Zertifikat an, oder kopieren Sie das PEM-Format und fügen Sie es in das Feld „ PEM-Zertifikat “ ein.
Protokollprofil
- Wenn ein Client das Serverzertifikat zur Authentifizierung anfordert, wird eine Zertifikatsignaturanforderung (Certificate Signing Request, CSR) generiert.
- Um auf eine CSR zu antworten, generiert der Server zwei eindeutige kryptografische Schlüssel: einen öffentlichen Schlüssel, der zum Verschlüsseln von Nachrichten an den Server verwendet wird, und einen privaten Schlüssel, der zum Entschlüsseln von Nachrichten verwendet wird. Beide Schlüssel werden im Schlüsselspeicher aufbewahrt.
- Schlüssel werden verwendet, um die sicheren Nachrichten des Clients zu entschlüsseln, damit sie vom Server gelesen werden können. Jede ausgehende Verbindung, die über HTTPS hergestellt wird, überprüft die Zertifizierung, indem sie den Schlüsselspeicher überprüft, seine öffentliche Zertifizierung anbietet und die Truststore-Zertifikate verwendet, um das gegenseitige Vertrauen zu überprüfen.
- Um die sichere Verbindung zwischen Client und Server herzustellen, gleicht der Server das Zertifikat mit dem entsprechenden privaten Schlüssel ab. Da nur der Server Zugriff auf den privaten Schlüssel hat, kann der Server die Daten des Clients entschlüsseln.
com.glide.certificates.DBKeyStoreSocketFactory an Port 443 registriert. Die Datenbank-Schlüsselspeicher-Factory wird während des SSL-Austauschprozesses verwendet, um ein Client-Zertifikat für die gegenseitige Authentifizierung bereitzustellen.glide.httpclient.protocol.myhttps.class = "com.glide.certificates.DBKeyStoreSocketFactory"
glide.httpclient.protocol.myhttps.port = "443"Der Server antwortet mit dem Senden eines -Zertifikats. Ist dies ein Zertifikat, das der Client akzeptiert? Falls ja, wird eine Nachricht an den Server gesendet, der das Zertifikat akzeptiert, und ein sicherer Kanal wird initiiert. Wenn das Zertifikat nicht akzeptiert wird, kann dies bedeuten, dass die Stammzertifizierung für die Zertifizierung erforderlich ist.