我们在 HA 上使用 Godaddy 通配符证书(通配符.pem)以及后端的自定义 CA 证书。内部 CA 受到 HA 和所有服务器的信任。我可以单独访问所有后端服务器,没有任何问题,但是当我们启用 SSL 验证时,健康检查几乎立即失败并出现 503 错误。
HA 配置
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 证书,如果证书有效,则健康检查应该通过。