Generieren Sie Zertifikate für das Setup des Headless-Browsers für Microsoft Windows

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 3 Minuten Lesedauer
  • Generieren Sie TLS/SSL-Zertifikate, um die Docker-REST-API zu sichern und HTTP-Anforderungen zu authentifizieren.

    Vorbereitungen

    Erforderliche Rolle: admin in Ihrer Instanz ServiceNow und lokaler Administrator auf dem Hostcomputer.
    Warnung:
    Die einzige Version von Microsoft Windows, die ServiceNow als Host unterstützt, ist Windows Server 2019 v10.0.17763.737. Andere Versionen werden nicht unterstützt. Wenn Sie diese Anforderungen nicht erfüllen können, wird ein Linux -Host empfohlen.
    Beachten Sie die folgenden Anforderungen:
    • Zwei-Wege-Kommunikation
      Warnung:
      Stellen Sie sicher, dass Sie die Zertifizierungsstellenschlüssel von einer vertrauenswürdigen Zertifizierungsstelle beziehen.
      • Zwischen der Instanz-URL und Ihrem Server muss eine bidirektionale Kommunikation bestehen.
      • Suchen Sie die IP-Adresse Ihres Servers, und rufen Sie Ihren Hostnamen ab. Sie können eine oder beide Optionen verwenden, benötigen jedoch mindestens eine.
        Hinweis:
        Wenn Sie keinen Hostnamen haben und die Verbindung über die IP-Adresse herstellen, können Sie die IP-Adresse eingeben und „localhost“ in die Umgebungsvariable „Hostname“ setzen.
      Tipp:
      Um das Speichern dieser zu erleichtern, legen Sie die folgenden Umgebungsvariablen fest:
      • PASSWORD=" exportieren<password to generate the certificates with> “
      • SERVERIP="<this server's IP address> “
      • HOSTNAME = „“ exportieren<hostname of this server> “
    • Port: Verwenden Sie für dieses Verfahren Port 2376 oder Ihren eigenen Standardport.
      Hinweis:
      Stellen Sie sicher, dass Ihre Firewall-Regeln eingehende Anforderungen an diesen Port zulassen
    • Weitere Informationen finden Sie unter TLS (HTTPS) zum Schützen des Docker-Daemon-Sockets verwenden.

    Warum und wann dieser Vorgang ausgeführt wird

    Wenn die Docker-API verfügbar gemacht wird, werden Anforderungen standardmäßig nicht authentifiziert, wodurch Ihr Hostcomputer angreifbar für Angriffe werden kann. Die Docker-API unterstützt jedoch die TLS-Authentifizierung, bei der Anforderungen anhand von öffentlichen privaten Schlüsseln überprüft werden, die in der HTTPS-Verschlüsselung bereitgestellt werden. In diesem Schritt erstellen Sie diese Schlüssel für den Server und den Client.

    Prozedur

    1. Öffnen Sie eine Befehlszeile.
    2. Generieren Sie einen selbstsignierten Zertifizierungsstellenschlüssel, oder rufen Sie ein Schlüsselpaar von einer vertrauenswürdigen Zertifizierungsstelle ab.
      Die folgenden Befehle sind Beispiele. Beachten Sie, dass Ihre Konfiguration variieren kann.
      openssl genrsa -aes256 -passout pass:%PASSWORD% -out ca-key.pem 4096
      openssl req -passin pass:%PASSWORD% -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem 
    3. Generieren Sie das Serverschlüsselpaar mit dem Zertifizierungsstellenschlüssel.
      Die folgenden Befehle sind Beispiele. Beachten Sie, dass Ihre Konfiguration variieren kann.
      openssl genrsa -out server-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key server-key.pem -out server.csr
      echo extendedKeyUsage = clientAuth > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
    4. Erstellen Sie das Client-Schlüsselpaar mit dem Zertifizierungsstellenschlüssel.
      Die folgenden Befehle sind Beispiele. Beachten Sie, dass Ihre Konfiguration variieren kann.
      openssl genrsa -out client-key.pem 4096
      openssl req -subj /CN=%HOSTNAME% -new -key client-key.pem -out client.csr
      echo subjectAltName = DNS:%HOSTNAME%,IP:%SERVERIP%,IP:127.0.0.1 > extfile.cnf
      openssl x509 -passin pass:%PASSWORD% -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf
    5. Importieren Sie den öffentlichen CA-Schlüssel und das Client-Schlüsselpaar in einen Java-Schlüsselspeicher.
      Diese Anweisungen sind ein Beispiel. Ihre Konfiguration kann variieren.

      Erstellen Sie die Schlüsselspeicherdatei, und erstellen Sie ein Passwort dafür (und speichern Sie sie zur späteren Verwendung): keytool -genkey -keyalg RSA -alias dse -keystore my.keystore

      Löschen Sie einen Standardeintrag aus der Schlüsselspeicherdatei: keytool -delete -alias dse -keystore my.keystore

      Hinweis:
      Dieser Eintrag wird automatisch generiert und daher nicht benötigt.

      Importieren Sie den öffentlichen CA-Schlüssel in den Schlüsselspeicher: keytool -import -keystore my.keystore -trustcacerts -alias ca -file ca.pem

      Importieren Sie das Client-Schlüsselpaar.
      Hinweis:
      Sie erstellen eine neue pkcs12-Schlüsselspeicherdatei und importieren das Schlüsselpaar in diese Datei. Kopieren Sie dann den Inhalt in Ihre ursprüngliche Schlüsselspeicherdatei.
      • openedsl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importkeystore -destkeystore mein.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      Nachdem Sie nun alle Zertifikate zur Schlüsselspeicherdatei hinzugefügt haben, speichern Sie die Datei my.keystore für später, da sie in die Instanz ServiceNow hochgeladen wird. Denken Sie außerdem daran, sich das Passwort zu merken, das Sie bei der Aufforderung zum Erstellen der Schlüsselspeicherdatei eingegeben haben. müssen Sie dies in ein Formular in der Instanz ServiceNow eingeben.