HA 代理無法通過 ssl 驗證

HA 代理無法通過 ssl 驗證

我們在 HA 上使用 Godaddy 通配符證書(通配符.pem)以及後端的自訂 CA 憑證。內部 CA 受到 HA 和所有伺服器的信任。我可以單獨存取所有後端伺服器,沒有任何問題,但是當我們啟用 SSL 驗證時,運行狀況檢查幾乎立即失敗並出現 503 錯誤。

高可用性配置

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

我是否需要將使用 CA 建立的後端憑證與 GoDaddy pem 檔案合併?如果是,正確的順序是什麼?

答案1

是的,您需要將自訂 CA 憑證與 GoDaddy 憑證文件合併,以建立一個組合憑證文件,該文件可用作 HAProxy 後端伺服器配置中 ca-file 選項的值。組合文件中證書的正確順序是:

葉證書(您的 GoDaddy 通配符證書)

中繼憑證(GoDaddy 的憑證鏈)

根憑證(您的自訂 CA 憑證)

若要建立組合的證書文件,您可以使用文字編輯器將每個證書文件的內容以正確的順序複製並貼上到單一文件中。或者,您可以在 Linux 中使用 cat 命令來連接文件,如下所示:

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

建立組合的憑證檔案後,您可以更新 HAProxy 後端伺服器設定以使用 ssl verify required ca-file 選項,如下所示:

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

透過此配置,HAProxy 將使用自訂 CA 證書驗證後端伺服器提供的 SSL 證書,如果證書有效,則健康檢查應該通過。

相關內容