HA-Proxy schlägt bei SSL-Validierung fehl

HA-Proxy schlägt bei SSL-Validierung fehl

Wir verwenden ein Godaddy Wildcard-Zertifikat auf HA(Wildcard.pem)und benutzerdefinierte CA-Zertifikate auf den Backends. Die interne CA wird von HA und allen Servern als vertrauenswürdig eingestuft. Ich kann problemlos auf alle Backend-Server einzeln zugreifen, aber wenn wir die SSL-Validierung aktivieren, schlägt die Integritätsprüfung fast sofort mit einem 503-Fehler fehl.

HA-Konfigurationen

frontend api.qa.domain.com_esil_HTTPS_443_VS_172.20.25.69
    mode http
    bind 172.20.25.69:80
    bind 172.20.25.69:443 ssl crt /etc/hapee-2.4/ssl/Wildcard.pem ciphers ECDHE-RSA-AES128-CBC-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-CBC-SHA:AES128-SHA:AES256-SHA:ECDHE-ECDSA-AES128-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS ssl-min-ver TLSv1.2
    http-after-response replace-header set-cookie "^(my.session=.*)" "\1; SameSite=Strict" 
    http-request set-var(txn.path) path
    http-request set-var(req.backend) str(api.qa.domain.com_loggingservices_http_33313_POOL) if { path -i -m beg /loggingservice/ }
    
    use_backend %[var(req.backend)]

    backend api.qa.domain.com_loggingservice_http_333_POOL
    mode http
    http-request return status 503 content-type "text/html; charset=utf-8" lf-file /etc/hapee-2.4/apps/app_offline.htm if { nbsrv() le 0 }

    balance roundrobin
    dynamic-cookie-key Av3ryS3curek3y
    option httpchk GET /loggingservice/v1/_healthcheck HTTP/1.1
    http-check send hdr host api.qa.domain.com
    http-check expect status 200
    server QA_SERVER1_Node 10.133.20.24:333 check ssl verify none

Muss ich unsere Backend-Zertifikate, die wir mit unserer Zertifizierungsstelle erstellt haben, mit der GoDaddy-PEM-Datei zusammenführen? Wenn ja, welche wäre die richtige Reihenfolge?

Antwort1

Ja, Sie müssen die benutzerdefinierten CA-Zertifikate mit der GoDaddy-Zertifikatsdatei zusammenführen, um eine kombinierte Zertifikatsdatei zu erstellen, die als Wert für die Option „ca-file“ in Ihrer HAProxy-Backend-Serverkonfiguration verwendet werden kann. Die richtige Reihenfolge für die Zertifikate in der kombinierten Datei lautet:

Das Blattzertifikat (Ihr GoDaddy-Wildcard-Zertifikat)

Das Zwischenzertifikat (GoDaddys Zertifikatskette)

Das Stammzertifikat (Ihr benutzerdefiniertes CA-Zertifikat)

Um die kombinierte Zertifikatsdatei zu erstellen, können Sie einen Texteditor verwenden, um den Inhalt jeder Zertifikatsdatei in der richtigen Reihenfolge in eine einzelne Datei zu kopieren und einzufügen. Alternativ können Sie den Befehl cat in Linux verwenden, um die Dateien wie folgt zu verketten:

cat leaf.crt intermediate.crt customCA.crt > combined_cert.pem

Nachdem Sie die kombinierte Zertifikatsdatei erstellt haben, können Sie Ihre HAProxy-Backend-Serverkonfiguration aktualisieren, um die Option „SSL-Verifizierung erforderlich – CA-Datei“ wie folgt zu verwenden:

backend api.qa.domain.com_loggingservice_http_333_POOL
    mode http
    http-request return status 503 content-type "text/html; charset=utf-8" lf-file /etc/hapee-2.4/apps/app_offline.htm if { nbsrv() le 0 }

    balance roundrobin
    dynamic-cookie-key Av3ryS3curek3y
    option httpchk GET /loggingservice/v1/_healthcheck HTTP/1.1
    http-check send hdr host api.qa.domain.com
    http-check expect status 200
    server QA_SERVER1_Node 10.133.20.24:333 check ssl verify required ca-file /path/to/combined_cert.pem

Mit dieser Konfiguration überprüft HAProxy die von den Backend-Servern vorgelegten SSL-Zertifikate mithilfe des benutzerdefinierten CA-Zertifikats. Wenn die Zertifikate gültig sind, sollte die Integritätsprüfung erfolgreich sein.

verwandte Informationen