SSL für die Agentenkommunikation aktivieren

Die Build Forge-Komponenten werden standardmäßig so eingerichtet, dass bei aktiviertem SSL bestimmte Ports und Sicherheitseinstellungen verwendet werden.

Wenn Sie die SSL-Kommunikation zwischen Build Forge und den Agenten aktivieren möchten, müssen Sie folgende Schritte ausführen:

Agenten für SSL konfigurieren

  1. Falls der Agent aktiv ist, stoppen Sie ihn.
  2. Legen Sie PEM-Dateien für die Zertifikate im Installationsstammverzeichnis des Agenten ab.

    Zum schnellen Implementieren und Testen von SSL können Sie die PEM-Dateien aus der Build Forge-Installation kopieren. Die Dateien befinden sich im Verzeichnis <bf-installationsverzeichns>/keystore.

    Für SSL wird die Verwendung eines separaten Zertifikats für jeden Agenten empfohlen:

    1. Erstellen Sie separate Keystore-Dateien (.PEM) für jedes der folgenden Elemente:
      • privater Schlüssel ("Key")
      • öffentliches Zertifikat für den privaten Schlüssel ("Cert")
      • vertrauenswürdige Unterzeichner ("CA", Zertifizierungsstelle)
    2. Wenn Sie ein eindeutiges Zertifikat für den Agenten verwenden (anstelle einer Kopie des Zertifikats der Build Forge-Steuerkomponente), fügen Sie das Zertifikat für den Agenten dem Zertifizierungsstellenkeystore für Build Forge, also <bf-installationsverzeichnis>/keystore/buildForgeCA.pem, hinzu. Wenn mehrere (redundante) Steuerkomponenten aktiv sind, fügen Sie das Zertifikat dem Zertifizierungsstellenkeystore jeder Steuerkomponente hinzu.
    3. Wenn Sie KDB unter System z verwenden, verwenden Sie "gskkeyman", um die KDB-Datei zu erstellen.
    4. Wenn Sie den SAF-Schlüsselring (System Authorization Facility) verwenden, verwenden Sie RACF, um den Schlüsselring zu erstellen und das Zertifikat mit dem Schlüsselring zu verknüpfen.
  3. Bearbeiten Sie BFAgent.conf. Die folgenden Zeilen sind in der Datei auf Kommentar gesetzt. Entfernen Sie das Kommentarpräfix.
    ssl_key_location buildForgeKey.pem
    ssl_key_password kennwort
    ssl_cert_location buildForgeCert.pem
    ssl_ca_location buildForgeCA.pem
    ssl_protocol TLSv1
    ssl_cipher_group ALL

    Das kennwort gilt für den Keystore buildForgeKey.pem. Wenn Sie dieses verschlüsseln möchten, finden Sie weitere Details unter Kennwörter in buildforge.conf und bfagent.conf verschlüsseln.

    Wenn beim Herstellen einer Verbindung mit dem Agenten die Clientauthentifizierung erforderlich sein soll, entfernen Sie das Kommentarzeichen in der folgenden Zeile:
    ssl_client_authentication true
    Für diese Einstellung muss das Zertifikat der Steuerkomponente dem Zertifizierungsstellenkeystore des Agenten (buildForgeCA.pem) hinzugefügt werden.
    Wenn Sie bestimmte Chiffrierwerte verwenden möchten, entfernen Sie das Kommentarzeichen in dieser Zeile und fügen Sie Ihre Liste der Chiffrierwerte hinzu:
    ssl_cipher_override liste_der_chiffrierwerte
  4. Bearbeiten Sie "BFAgent" für Agenten, die unter dem System z ausgeführt werden, und entfernen Sie das Kommentarzeichen für die folgenden Zeilen:
    gsk_ssl_key_location <root/cert SAF>
    gsk_ssl_key_location /etc/key.kdb
    gsk_ssl_kdb_password <password>
    gsk_keyring_label <certificate label>
    gsk_ssl_protocol ALL
    gsk_ssl_cipher_v2 6321
    gsk_ssl_cipher_v3 0906030201
    gsk_ssl_client_authentication true
    gsk_password_encrypt false

    Verwenden Sie nur eine gsk_ssl_key_location. Sie können entweder einen SAF-Schlüsselring oder eine KDB-Datei auswählen. Ein SAF-Schlüsselring wird durch <userid>/<keyring> angegeben.

  5. Starten Sie den Agenten. Der Agent muss aktiv sein, damit die Verbindung von der Konsole aus getestet werden kann.

SSL in Serverdefinitionen aktivieren

In der Konsole werden Serverdefinitionen zum Verbinden mit Agenten verwendet.

Führen Sie für jede Serverdefinition zum Verbinden mit einem Agenten, für den SSL aktiviert ist, folgende Schritte aus:

Fehlerbehebung für die SSL-Kommunikation mit Agenten

In der folgenden Prüfliste sind beim Aktivieren von SSL häufig auftretende Probleme aufgeführt:

Debugnachrichten aktivieren

Sie können das Debugging in der Steuerkomponente und im Agenten aktivieren. Bei aktiviertem Debugging wird eine zusätzliche detaillierte Ausgabe generiert, die u. U. zum Ermitteln von Problemen in der Konfiguration hilfreich ist.

Beispiel für eine Debugausgabe der Steuerkomponente bei erfolgreicher SSL-Verbindung

Eine Steuerkomponente generiert bei der erfolgreichen Verbindung mit einem Agenten die folgende Ausgabe:


SSL_ca_file: ./keystore/buildForgeCA.pem
SSL_cert_file: ./keystore/buildForgeCert.pem
SSL_key_file: ./keystore/buildForgeKey.pem
SSL_verify_mode: 0x01
SSL_version: TLSv1
SSL_cipher_list: ALL
SSL_use_cert: 1
Making as SSL connection using socket IO::Socket::INET=GLOB(0x1e8f0f4).
SSL connection to agent.
DEBUG: .../IO/Socket/SSL.pm:1387: new ctx 80662848
DEBUG: .../IO/Socket/SSL.pm:880: dont start handshake: IO::Socket::SSL=GLOB(0x1e8f0f4)
DEBUG: .../IO/Socket/SSL.pm:284: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:327: Net::SSLeay::connect -> 1
DEBUG: .../IO/Socket/SSL.pm:382: ssl handshake done
Socket is of type: ref(IO::Socket::SSL=GLOB(0x1e8f0f4))
ReadyLine: 202 HELLO TLS - BuildForge Agent v_VERSION_
.
Storing Agent Version [999.999.999.999-999-9999] for [08974C8E-6C3B-1014-972D-D9B2901D9F42]
cmd ping
username pbirk
encpass c1713f4a31af3f1300f7b2414a24559c4d6097e07310cf9c412e
go
Sending agent request...

Beispiel für eine Debugausgabe des Agenten bei erfolgreicher SSL-Verbindung

Ein Agent, der normal ausgeführt wird, generiert bei der erfolgreichen Herstellung einer SSL-Verbindung die folgende Ausgabe:


[2256] main.c          : 409: === NEW AGENT ===
[2256] io.c            : 264: In start_SSL
[2256] io.c            :  89: Key location: buildForgeKey.pem
[2256] bfpwdlocloader.c: 134: Looking for password locator: ssl_key_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_key_password from bfagent.conf.
[2256] bfcryptloader.c : 202: Loading password encryption module.
[2256] bfcryptloader.c : 276: Password encryption property 
                              password_encrypt_module is not configured.
[2256] bfcryptloader.c : 539: Password decoded.
[2256] io.c            :  98: Cert location: buildForgeCert.pem
[2256] bfpwdlocloader.c: 134: Looking for password locator: 
                              ssl_cert_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_cert_password from bfagent.conf.
[2256] io.c            : 153: Setting key password in default userdata.
[2256] io.c            : 160: Getting private key from PEM.
[2256] io.c            : 166: Checking private key from PEM.
[2256] io.c            : 172: Getting CA store information.
[2256] bfpwdlocloader.c: 134: Looking for password locator: 
                              ssl_ca_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_ca_password from bfagent.conf.
[2256] io.c            : 178: CA location: buildForgeCert.pem
[2256] io.c            : 184: Checking the CA store.
[2256] io.c            : 230: Returning from init_CTX.
[2256] io.c            : 281: Calling SSL_new
[2256] io.c            : 294: Calling SSL_accept.
[2256] io.c            : 346: Cipher chosen: AES256-SHA
[2256] io.c            : 367: ssl_state = SS_CERTIFIED

Beispielausgabe bei falschem Keystorekennwort auf dem Agenten

Wenn auf der Agentenseite ein falsches Keystorekennwort konfiguriert wurde, wird dies sowohl in der Ausgabe der Steuerkomponente als auch in der des Agenten angegeben.

Ausgabe der Steuerkomponente (Auszug):


SSL_use_cert: 1
Making as SSL connection using socket IO::Socket::INET=GLOB(0x1e8f0f4).
SSL connection to agent.
DEBUG: .../IO/Socket/SSL.pm:1387: new ctx 80662848
DEBUG: .../IO/Socket/SSL.pm:880: dont start handshake: IO::Socket::SSL=GLOB(0x1e8f0f4)
DEBUG: .../IO/Socket/SSL.pm:284: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:327: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:1135: SSL connect attempt failed with unknown error
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

DEBUG: .../IO/Socket/SSL.pm:333: fatal SSL error: SSL connect attempt failed with unknown error
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
DEBUG: .../IO/Socket/SSL.pm:1422: free ctx 80662848 open=80662848 80566656
DEBUG: .../IO/Socket/SSL.pm:1425: OK free ctx 80662848

Ausgabe des Agenten (Auszug):


[    5272] io.c            :  98: Cert location: buildForgeCert.pem
[    5272] bfpwdlocloader.c: 134: Looking for password locator: ssl_cert_passwor
d_locator
[    5272] bfpwdlocloader.c: 244: Looking for password for prop ssl_cert_password from bfagent.conf.
[    5272] io.c            : 153: Setting key password in default userdata.
[    5272] io.c            : 160: Getting private key from PEM.
[    5272] io.c            : 218: Failure reason: SSLErrorBadPKeyFile
[    5272] io.c            : 221: OpenSSL error string: error:00000000:lib(0):func(0):reason(0)
[    5272] io.c            : 281: Calling SSL_new
[    5272] platform.c      :2693: platform_release_credentials
[    5272] main.c          : 412: --- EXITING ---

Fehlercodes in der Ausgabe des Agenten

In der folgenden Liste werden einige möglicherweise angegebene Fehlercodes und ihre Ursachen beschrieben:


Feedback