Konfigurieren der gegenseitigen Authentifizierung

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Die gegenseitige Authentifizierung stellt Vertrauen her, indem SSL-Zertifikate (Secure Sockets Layer) ausgetauscht werden.

    Vor dem Herstellen einer Verbindung mit einem Server fordert der Client ein SSL-Zertifikat an. Der Server antwortet, indem er anfordert, dass der Client sein eigenes Zertifikat sendet. Beide reagieren, indem sie die Zertifikate validieren und Bestätigungen senden, bevor eine HTTPS-Verbindung initiiert wird.

    Administratoren führen die Vorarbeiten durch, indem sie einen Schlüsselspeicher einrichten und Zertifikate generieren, bevor Zertifizierungsanforderungen erfüllt werden.
    Warnung:
    Diese Funktion ermöglicht nur die gegenseitige Authentifizierung bei ausgehenden HTTPS-Verbindungen.

    Erstellen des Schlüsselspeichers

    Die Instanz unterstützt derzeit das Hochladen einer Java-Schlüsselspeicherdatei, die den privaten Schlüssel, das öffentliche Zertifikatpaar und die signierten Zertifikate enthält.

    In den folgenden Schritten werden Befehle verwendet, mit denen Sie eine neue Java Keytool-Schlüsselspeicherdatei generieren, eine Zertifikatsignaturanforderung (Certificate Signing Request, CSR) erstellen und Zertifikate importieren können. Alle Stamm- oder Zwischenzertifikate müssen importiert werden, bevor das primäre Zertifikat für Ihre Domäne importiert wird. Geben Sie diese Befehle in eine Befehlszeilenschnittstelle ein.
    1. Generieren Sie einen Java-Schlüsselspeicher und ein Schlüsselpaar.
      keytool -genkey -alias mydomain -keyalg RSA -keystore my.keystore
    2. Generieren Sie eine CSR für einen vorhandenen Java-Schlüsselspeicher.
      keytool -certreq -alias mydomain -keystore my.keystore -file mydomain.csr
    3. 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.keystore
    4. Importieren Sie ein signiertes primäres Zertifikat in einen vorhandenen Java-Schlüsselspeicher.
      keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore my.keystore

    Einrichten des Schlüsselspeichers

    Nachdem der Schlüsselspeicher erstellt wurde, kann er in die Zertifikattabelle hochgeladen werden. Auf der Systemdefinition > Zertifikate Klicken Sie auf der -Seite auf Neu, und legen Sie die folgenden Felder fest:
    • Geben Sie einen Zertifikatnamenein.
    • Speichern Sie den Schlüsselspeicher als Active.
    • Typ festlegen = Java Key Store.
    • Geben Sie ein Passwort für den Schlüsselspeicher an. Dies ist das Passwort, das zum Erstellen des Schlüsselspeichers verwendet wurde.
    Klicken Sie auf Absenden, um den Java Key Store-Eintrag zu erstellen.
    Abbildung : 1. Schlüsselspeicher

    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. Zum 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.

    Anforderungen der gegenseitigen Authentifizierung werden verarbeitet

    Abbildung : 2. Zertifikataustausch
    • 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 gespeichert.
    • 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 vom Client entschlüsseln.
    Hier ein Beispiel für einen Befehl, der MYHTTPS mit der Socket Factory com.glide.certificates.DBKeyStoreSocketFactory an Port 443 registriert. Die Schlüsselspeicher-Werkseinstellung der Datenbank wird während des SSL-Austauschvorgangs 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"
    Die obige Konfiguration wirkt sich auf alle ausgehenden myhttps://host.domain.com/target-URLs aus, um die benutzerdefinierte Socket-Werkseinstellung zu verwenden und Zertifikate während SSL auszutauschen.
    Hinweis:
    Das Überschreiben der standardmäßigen HTTPS-Protokoll-Socket-Werkseinstellung wirkt sich auf jede ausgehende HTTPS-Verbindung aus. Dies ist normalerweise unerwünscht.

    Der Server antwortet mit dem Senden eines Zertifikats. Ist dies ein Zertifikat, das der Client akzeptiert? Wenn 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 Stammautorität für die Zertifizierung erforderlich ist.