HA Proxy не проходит проверку SSL

HA Proxy не проходит проверку SSL

Мы используем wild card сертификат Godaddy на HA(Шаблон.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

Нужно ли мне объединять наши внутренние сертификаты, созданные с помощью нашего центра сертификации, с PEM-файлом GoDaddy? Если да, то каков правильный порядок?

решение1

Да, вам необходимо объединить пользовательские сертификаты CA с файлом сертификата GoDaddy, чтобы создать объединенный файл сертификата, который можно использовать в качестве значения параметра ca-file в конфигурации вашего внутреннего сервера HAProxy. Правильный порядок сертификатов в объединенном файле:

Сертификат листа (ваш универсальный сертификат GoDaddy)

Промежуточный сертификат (цепочка сертификатов GoDaddy)

Корневой сертификат (ваш пользовательский сертификат CA)

Чтобы создать объединенный файл сертификата, вы можете использовать текстовый редактор, чтобы скопировать и вставить содержимое каждого файла сертификата в один файл в правильном порядке. В качестве альтернативы вы можете использовать команду cat в Linux, чтобы объединить файлы, например:

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 будет проверять SSL-сертификаты, предоставленные внутренними серверами, с помощью пользовательского сертификата CA, и проверка работоспособности должна быть пройдена, если сертификаты действительны.

Связанный контент