Gegenseitige Authentifizierung wird konfiguriert

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Durch die gegenseitige Authentifizierung wird Vertrauen durch den Austausch von SSL-Zertifikaten (Secure Sockets Layer) hergestellt.

    Während des SSL-Handshake stellt der Server dem Client sein Zertifikat vor. Anschließend kann je nach Konfiguration des Servers ein Zertifikat vom Client angefordert werden. 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 Bestätigungen ausgetauscht, bevor die HTTPS-Verbindung initiiert wird.

    Administratoren führen die Vorarbeit zum Einrichten des Client-Schlüsselspeichers und Generieren von Zertifikaten durch, bevor Zertifizierungsanforderungen erfüllt werden.

    Warnung:
    Diese Funktion aktiviert nur die gegenseitige Authentifizierung für ausgehende HTTP-Verbindungen.

    Schlüsselspeicher wird erstellt

    Die Instanz unterstützt derzeit das Hochladen einer Java-Schlüsselspeicherdatei, die einen privaten Schlüssel und ein öffentliches Zertifikatpaar enthält. Das öffentliche Zertifikat enthält eine vollständige Kette einschließlich des Stammzertifikats.

    So richten Sie Ihren Client-Schlüsselspeicher ein:

    • Sie benötigen ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle (CA) 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 mit Befehlen der Befehlszeilenschnittstelle, um eine neue Schlüsselspeicherdatei zu generieren, eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) zu erstellen und signierte Zertifikate zu importieren. Vor dem Importieren des primären Zertifikats Ihrer Domäne sollten alle Stamm- oder Zwischenzertifikate zuerst importiert werden. Hier ist eine Schritt-für-Schritt-Anweisung:

    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. Senden Sie die CSR an Ihre ZERTIFIZIERUNGSSTELLE, um die Zertifikatdateien zu signieren und zurückzugeben, die Zwischen- und Stammzertifikate zusammen mit dem signierten Zertifikat enthalten.
    4. 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
      Hinweis:
      Sie können alle Zertifikate in einer Datei bündeln und importieren. Dies ist eine bevorzugte Option. Wenn Sie dies tun, können Sie 5 überspringen
      keytool -import -alias mydomain -file merged.crt -keystore my.keystore
    5. Importieren Sie ein signiertes primäres Zertifikat in einen vorhandenen Java-Schlüsselspeicher.
      keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore my.keystore

    Schlüsselspeicher wird eingerichtet

    Nachdem der Schlüsselspeicher jetzt erstellt wurde, kann er in die Zertifikattabelle hochgeladen werden. Auf der Systemdefinition > Zertifikate Seite, klicken Sie auf Neu Und legen Sie die folgenden Felder fest:
    • Geben Sie ein Zertifikat ein Name .
    • Speichern Sie den Schlüsselspeicher als Aktiv .
    • Festgelegt Typ = Java-Schlüsselspeicher .
    • Geben Sie an Schlüsselspeicher-Passwort . Dies ist das Passwort, das zum Erstellen des Schlüsselspeichers verwendet wurde.
    Klicken Sie Auf Übermitteln Zum Erstellen des Java-Schlüsselspeicher-Eintrags.
    Abbildung : 1. Schlüsselspeicher

    Angabe eines vertrauenswürdigen Serverzertifikats

    Während einer ausgehenden SSL-Verbindung, bei der es sich um einen HTTPS-Webserviceaufruf 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 Hochladen des vertrauenswürdigen Serverzertifikats ServiceNowStellt 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 ein PEM-Zertifikat Feld.

    Protokollprofil

    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 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 HTTPS sein wird, verifiziert die Zertifizierung, indem der Schlüsselspeicher überprüft, seine öffentliche Zertifizierung angeboten wird, und verwendet die Truststore-Zertifikate, um das gegenseitige Vertrauen zurückzuverifizieren.
    • Um die sichere Verknüpfung zwischen dem Client und dem Server abzuschließen, stimmt 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 ist ein Beispiel für einen Befehl, der MYHTTPS bei registriert Com.Glide.Certificates.DBKeyStoreSocketFactory Socket-Factory auf Port 443. Die Datenbank-Schlüsselspeicher-Factory wird während des SSL-Austauschprozesses verwendet, um ein Clientzertifikat für die gegenseitige Authentifizierung anzubieten.
    glide.httpclient.protocol.myhttps.class = "com.glide.certificates.DBKeyStoreSocketFactory"
    glide.httpclient.protocol.myhttps.port = "443"
    Die obige Konfiguration wirkt sich auf alle ausgehenden Elemente aus Myhttps://host.domain.com/target URL zur Verwendung der anwenderdefinierten Socket Factory- und Austauschzertifikate während SSL.
    Hinweis:
    Das Überschreiben der Standard-HTTPS-Protokoll-Socket-Factory wirkt sich auf jede ausgehende HTTPS-Verbindung aus. Dies ist normalerweise unerwünscht.

    Der Server antwortet, indem er ein Zertifikat sendet. 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 Stammberechtigung für die Zertifizierung erforderlich ist.