我们在 HA (Wildcard.pem)上使用 Godaddy 通配符证书,在后端使用自定义 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 文件合并?如果是,正确的顺序是什么?
是的,您需要将自定义 CA 证书与 GoDaddy 证书文件合并,以创建一个组合证书文件,该文件可用作 HAProxy 后端服务器配置中 ca-file 选项的值。组合文件中证书的正确顺序是:
叶证书(您的 GoDaddy 通配符证书)
中间证书(GoDaddy 的证书链)
根证书(您的自定义 CA 证书)
要创建组合证书文件,您可以使用文本编辑器将每个证书文件的内容按正确顺序复制并粘贴到一个文件中。或者,您可以在 Linux 中使用 cat 命令来连接文件,如下所示:
创建组合证书文件后,您可以更新 HAProxy 后端服务器配置以使用 ssl verify required ca-file 选项,如下所示:
使用此配置,HAProxy 将使用自定义 CA 证书验证后端服务器提供的 SSL 证书,如果证书有效,则健康检查应该通过。