Generieren von Zertifikaten für das Setup des monitorlosen Browsers für Microsoft Windows

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Generieren von TLS/SSL-Zertifikaten, 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 von ServiceNowunterstützte Version von Microsoft Windows als Host ist: Windows Server 2019 v10.0.17763.737. Es werden keine anderen Versionen unterstützt. Wenn Sie diese Anforderungen nicht erfüllen können, wird ein Linux-Host empfohlen.
    Beachten Sie die folgenden Anforderungen:
    • Bidirektionale Kommunikation
      Warnung:
      Stellen Sie sicher, dass Sie die Schlüssel der Zertifizierungsstelle von einer vertrauenswürdigen Zertifizierungsstelle erhalten.
      • 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 einen oder beide verwenden, benötigen jedoch mindestens einen.
        Hinweis:
        Wenn Sie keinen Hostnamen haben und eine Verbindung über die IP-Adresse herstellen, können Sie die IP-Adresse eingeben und „localhost“ in die Umgebungsvariable „Hostname“ einfügen.
      Tipp:
      Damit Sie sich diese leichter merken können, legen Sie die folgenden Umgebungsvariablen fest:
      • PASSWORD=" exportieren<password to generate the certificates with> “
      • SERVERIP = exportieren<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 diesem Port zulassen
    • Weitere Informationen finden Sie unter TLS (HTTPS) zum Schutz 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 öffentlicher privater Schlüssel überprüft werden, die in der HTTPS-Verschlüsselung bereitgestellt werden. In diesem Schritt erstellen Sie die 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 Schlüssel der Zertifizierungsstelle.
      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 Schlüssel der Zertifizierungsstelle.
      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 Schlüssel der Zertifizierungsstelle 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 es 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 ist daher nicht erforderlich.

      Importieren Sie den öffentlichen Schlüssel der Zertifizierungsstelle 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.
      • openedssl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importkeystore -destkeystore my.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      Nachdem Sie der Schlüsselspeicherdatei nun alle Zertifikate 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.