Konfiguration der gegenseitigen Authentifizierung nach dem „ TLS “-Prinzip auf Pool-Ebene

Konfigurieren Sie die gegenseitige Authentifizierung nach dem „ TLS “-Prinzip ( mTLS ) auf Pool-Ebene, um die Zertifikate der Backend-Server zu überprüfen und bei der Verbindung zu den Backend-Servern Client-Zertifikate vorzulegen.

Vorbereitende Schritte

Bevor Sie die Authentifizierung auf Pool-Ebene konfigurieren, stellen Sie sicher, dass Folgendes vorhanden ist:

  • Ein Anwendungs-Load-Balancer mit einem Profil, das „ mTLS “ unterstützt (überprüfen Sie die Eigenschaft „ mtls_supported “)
  • Ein Pool, der mit dem „ HTTPS “-Protokoll konfiguriert ist
  • (Optional) Ein gültiges CA-Zertifikat im Format „ PEM “, das unter „ Secrets Manager “ gespeichert ist, zur Überprüfung der Zertifikate der Backend-Server
  • (Optional) Ein gültiges Client-Zertifikat mit privatem Schlüssel im Format „ PEM “, das unter „ Secrets Manager “ gespeichert ist und den Backend-Servern vorgelegt werden soll
  • Die entsprechenden IAM-Berechtigungen zur Verwaltung von Load Balancern und Zugriffszertifikaten in Secrets Manager

mTLS-Authentifizierung auf Pool-Ebene verstehen

Die Authentifizierung auf Pool-Ebene bietet zwei unterschiedliche Funktionen zur Sicherung der Verbindungen zwischen dem Load Balancer und den Backend-Servern:

Serverauthentifizierung
Überprüfen Sie die Identität der Backend-Server, indem Sie deren Zertifikate anhand eines konfigurierten CA-Zertifikats validieren. Dadurch wird sichergestellt, dass der Load Balancer nur eine Verbindung zu vertrauenswürdigen Backend-Servern herstellt.
Clientauthentifizierung
Legen Sie den Backend-Servern ein Client-Zertifikat vom Load Balancer vor, wenn die Backend-Infrastruktur „ mTLS “ erfordert. Auf diese Weise können die Backend-Server die Identität des Load Balancers überprüfen.

Diese Funktionen können je nach Ihren Sicherheitsanforderungen einzeln oder gemeinsam konfiguriert werden.

Konfiguration der Server- mTLS-Authentifizierung

Die Serverauthentifizierung besteht aus zwei Komponenten:

Zertifikat verifizieren
Ein boolescher Schalter, der die Überprüfung von Backend-Serverzertifikaten aktiviert oder deaktiviert. Wenn diese Option aktiviert ist, überprüft der Load Balancer die Zertifikate der Backend-Server während des „ TLS “-Handshakes.
Zertifikat der Zertifizierungsstelle (CA)
Ein optionales CA-Zertifikat, das zur Überprüfung der Zertifikate der Backend-Server verwendet wird. Wenn die Serverüberprüfung aktiviert ist, aber kein CA-Zertifikat bereitgestellt wird, verwendet der Load Balancer den System-Vertrauensspeicher, um die Zertifikate der Backend-Server zu validieren.

Konfiguration der Client- mTLS-Authentifizierung

Für die Client-Authentifizierung ist Folgendes erforderlich:

Clientzertifikat
Ein Zertifikat mit privatem Schlüssel, das der Load Balancer den Backend-Servern vorlegt, wenn diese während des „ TLS “-Handshakes eine Client-Authentifizierung anfordern. Das Zertifikat muss unter „ Secrets Manager “ gespeichert werden.

Konfigurieren der „ mTLS “-Pool-Authentifizierung in der Konsole

So konfigurieren Sie die Authentifizierung für einen Pool in der „ IBM Cloud “-Konsole:

  1. Rufen Sie die Seite „Lastenausgleichsmodule für VPC“ auf.
  2. Klicken Sie auf den Namen Ihres Application Load Balancers.
  3. Klicken Sie auf die Registerkarte „ Backend-Pools “.
  4. Klicken Sie bei einem bestehenden Pool auf das Menü „Aktionen“ (Aktionsmenü „, und wählen Sie „Bearbeiten“ aus. Um einen neuen Pool zu erstellen, klicken Sie auf „ Erstellen “.
  5. In der Pool-Konfiguration:
    • Stellen Sie sicher, dass „Protokoll“ auf HTTPS.
  6. Im Abschnitt „ Serverauthentifizierung “:
    • Wählen Sie „Serverzertifikat überprüfen“, um die Überprüfung des Backend-Serverzertifikats zu aktivieren.
    • (Optional) Wählen Sie unter „Zertifizierungsstelle“ das CA-Zertifikat von Secrets Manager aus, das zur Überprüfung der Zertifikate der Backend-Server verwendet werden soll. Sofern nicht anders angegeben, wird der System-Trust-Store verwendet.
  7. Im Abschnitt „ Client-Authentifizierung “:
    • Wählen Sie unter „Client-Zertifikat“ das Zertifikat unter Secrets Manager aus, das der Load Balancer den Backend-Servern vorlegen soll.
  8. Klicken Sie auf „ Speichern “ oder „ Erstellen “.

Konfiguration der „ mTLS “-Pool-Authentifizierung über die CLI

Erstellen eines Pools mit der Serverauthentifizierung v mTLS

Um einen Pool zu erstellen, bei dem die Zertifikatsüberprüfung auf dem Backend-Server aktiviert ist, verwenden Sie den Befehl „ ibmcloud is load-balancer-pool-create “:

ibmcloud is load-balancer-pool-create POOL_NAME LOAD_BALANCER ALGORITHM PROTOCOL \
  HEALTH_DELAY HEALTH_RETRIES HEALTH_TIMEOUT HEALTH_TYPE \
  --server-auth-verify-cert true \
  [--server-auth-ca-crn CA_CERT_CRN]

Dabei gilt:

  • POOL_NAME ist der Name Ihres Pools.
  • LOAD_BALANCER ist die ID oder der Name Ihres Load Balancers.
  • ALGORITHM ist der Lastverteilungsalgorithmus (round_robin, weighted_round_robin oder least_connections).
  • PROTOCOL Für die Unterstützung von „ mTLS “ muss „ https “ eingestellt sein.
  • CA_CERT_CRN ist die optionale CRN des CA-Zertifikats, das zur Überprüfung der Zertifikate der Backend-Server verwendet wird.

Beispiel:

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511

Erstellen eines Pools mit der Client-Authentifizierung „ mTLS “

So erstellen Sie einen Pool, bei dem die Vorlage von Client-Zertifikaten aktiviert ist:

ibmcloud is load-balancer-pool-create POOL_NAME LOAD_BALANCER ALGORITHM PROTOCOL \
  HEALTH_DELAY HEALTH_RETRIES HEALTH_TIMEOUT HEALTH_TYPE \
  --client-auth-cert-crn CLIENT_CERT_CRN

Beispiel:

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --client-auth-cert-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512

Erstellen eines Pools mit Server- und Client- mTLS-Authentifizierung

So erstellen Sie einen Pool, der sowohl eine Serverüberprüfung als auch die Vorlage eines Client-Zertifikats unterstützt:

ibmcloud is load-balancer-pool-create my-pool my-load-balancer round_robin https \
  20 2 5 http \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511 \
  --client-auth-cert-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512

Aktualisieren eines Pools zur Aktivierung der Serverauthentifizierung über „ mTLS “

So aktualisieren Sie einen bestehenden Pool, um die Serverauthentifizierung zu aktivieren:

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL \
  --server-auth-verify-cert true \
  [--server-auth-ca-crn CA_CERT_CRN]

Beispiel:

ibmcloud is load-balancer-pool-update my-load-balancer my-pool \
  --server-auth-verify-cert true \
  --server-auth-ca-crn crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511

Aktualisierung eines Pools zur Aktivierung der Client-Authentifizierung über „ mTLS “

So aktualisieren Sie einen bestehenden Pool, um die Client-Authentifizierung zu aktivieren:

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL \
  --client-auth-cert-crn CLIENT_CERT_CRN

Deaktivieren der Serverauthentifizierung für „ mTLS “

So deaktivieren Sie die Serverauthentifizierung für einen Pool:

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL --reset-server-auth

Deaktivieren der Client-Authentifizierung über „ mTLS “

So deaktivieren Sie die Client-Authentifizierung für einen Pool:

ibmcloud is load-balancer-pool-update LOAD_BALANCER POOL --reset-client-auth

Konfiguration der Pool-Authentifizierung über die API

Erstellen eines Pools mit Server- und Client-Authentifizierung v mTLS

Um einen Pool zu erstellen, bei dem sowohl die Server- als auch die Client-Authentifizierung aktiviert ist, rufen Sie die Methode „ POST /load_balancers/{load_balancer_id}/pools “ auf:

curl -X POST \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "name": "my-pool",
    "algorithm": "round_robin",
    "protocol": "https",
    "health_monitor": {
      "delay": 20,
      "max_retries": 2,
      "timeout": 5,
      "type": "http"
    },
    "server_authentication": {
      "verify_certificate": true,
      "certificate_authority": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
      }
    },
    "client_authentication": {
      "certificate_instance": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
      }
    }
  }'

Aktualisieren eines Pools zur Aktivierung der Serverauthentifizierung über „ mTLS “

Um einen bestehenden Pool so zu aktualisieren, dass die Serverauthentifizierung aktiviert wird, rufen Sie die Methode „ PATCH /load_balancers/{load_balancer_id}/pools/{id} “ auf:

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "server_authentication": {
      "verify_certificate": true,
      "certificate_authority": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
      }
    }
  }'

Aktualisierung eines Pools zur Aktivierung der Client-Authentifizierung über „ mTLS “

So aktualisieren Sie einen bestehenden Pool, um die Client-Authentifizierung zu aktivieren:

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "client_authentication": {
      "certificate_instance": {
        "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
      }
    }
  }'

Deaktivieren der Serverauthentifizierung für „ mTLS “

Um die Serverauthentifizierung zu deaktivieren, setzen Sie die Eigenschaft „ server_authentication “ auf „ null “:

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "server_authentication": null
  }'

Deaktivieren der Client-Authentifizierung über „ mTLS “

Um die Client-Authentifizierung zu deaktivieren, setzen Sie die Eigenschaft „ client_authentication “ auf „ null “:

curl -X PATCH \
  "$vpc_api_endpoint/v1/load_balancers/$load_balancer_id/pools/$pool_id?version=2026-05-06&generation=2" \
  -H "Authorization: Bearer $iam_token" \
  -d '{
    "client_authentication": null
  }'

Konfiguration der Authentifizierung für den „ mTLS “-Pool mit Terraform

Um die Authentifizierung für einen Pool mit Terraform zu konfigurieren, verwenden Sie die Ressource „ ibm_is_lb_pool “ zusammen mit den Blöcken „ server_authentication “ und „ client_authentication “:

resource "ibm_is_lb_pool" "example" {
  lb                 = ibm_is_lb.example.id
  name               = "my-pool"
  algorithm          = "round_robin"
  protocol           = "https"
  health_delay       = 20
  health_retries     = 2
  health_timeout     = 5
  health_type        = "http"

  server_authentication {
    verify_certificate = true
    certificate_authority_crn = "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f511"
  }

  client_authentication {
    certificate_instance_crn = "crn:v1:bluemix:public:secrets-manager:us-south:a/aa5a471f75bc456fac416bf02c4ba6de:aace9348-39da-4498-b132-e5ab918237f4:secret:e3bd96ce-1e4c-f642-d1f2-0d0ab025f512"
  }
}

Überprüfung der Authentifizierungskonfiguration für den „ mTLS “-Pool

Nachdem Sie die Pool-Authentifizierung konfiguriert haben, überprüfen Sie, ob sie ordnungsgemäß funktioniert:

  1. Überprüfen Sie den Pool-Status, um sicherzustellen, dass die Backend-Server einwandfrei funktionieren:

    ibmcloud is load-balancer-pool LOAD_BALANCER POOL
    
  2. Wenn die Serverüberprüfung aktiviert ist, stellen Sie sicher, dass die Backend-Server gültige Zertifikate vorweisen, die von der konfigurierten Zertifizierungsstelle signiert wurden.

  3. Wenn die Client-Authentifizierung aktiviert ist, stellen Sie sicher, dass die Backend-Server das vom Load Balancer vorgelegte Client-Zertifikat validieren können.

  4. Überwachen Sie die Protokolle des Load Balancers auf etwaige „ TLS “-Handshake-Fehler, die auf Probleme bei der Zertifikatsvalidierung hindeuten könnten.

Wichtige Hinweise zur Authentifizierung auf Pool-Ebene bei „ mTLS “

Die Konfiguration auf Pool-Ebene gilt für alle Backend-Server
Sowohl die Server-Authentifizierung als auch die Client-Authentifizierung werden auf Pool-Ebene konfiguriert. Alle Backend-Server innerhalb des Pools verwenden dieselben Authentifizierungseinstellungen. Wenn Sie für verschiedene Backend-Server unterschiedliche Zertifikatsrichtlinien benötigen, erstellen Sie separate Pools.
Mehrere Zertifizierungsstellen für Backend-Server
Wenn Backend-Server im selben Pool von verschiedenen Zertifizierungsstellen signiert sind, können Sie eine gebündelte CA-Datei bereitstellen, die alle relevanten Stamm- und Zwischenzertifikate enthält. Alle Backend-Server gelten als vertrauenswürdig, wenn ihre Zertifikatsketten zu einer der im Bundle enthaltenen Zertifizierungsstellen führen.
System-Vertrauensspeicher
Wenn die Serverüberprüfung aktiviert ist, aber kein CA-Zertifikat bereitgestellt wird, verwendet der Load Balancer den System-Trust-Store ( Ubuntu Linux ), um die Zertifikate der Backend-Server zu validieren. Dies funktioniert bei Zertifikaten, die von bekannten öffentlichen Zertifizierungsstellen signiert wurden, jedoch nicht bei selbstsignierten Zertifikaten oder Zertifikaten privater Zertifizierungsstellen.
Zertifikatsaktualisierungen
Wenn Sie Zertifikate unter Secrets Manager aktualisieren, ruft der Load Balancer die aktualisierten Zertifikate automatisch ab. Möglicherweise müssen jedoch aktive Verbindungen neu aufgebaut werden, um die neuen Zertifikate nutzen zu können.

Nächste Schritte