TomcatのHAProxyはエラー403を返します

TomcatのHAProxyはエラー403を返します

ポート8080でTomcatサービスを実行する古いサーバーがあります。さまざまな理由で(クライアントアクセス保護を含む)、SSL証明書で保護されているHAProxyサーバーを前に設定する必要があります。

HAProxy 関連の構成は次のとおりです。

frontend myservice
    mode    tcp
    option  tcplog
    option  logasap
    log     global
    option  tcpka
    bind    10.10.10.10:80
    bind    10.10.10.10:443 ssl crt /etc/ssl/haproxy/myservice.example.org.pem
    acl secure dst_port eq 443
    http-response add-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload;"
    http-response replace-header Set-Cookie (.*) \1;\ Secure if secure
    use_backend bck_myservice if { hdr(Host) -i myservice.example.org myservice }
    default_backend bck_deny

backend bck_myservice
    mode     tcp
    balance  leastconn
    option   prefer-last-server
    server   oldserver.example.org oldserver.example.org:8080 weight 1 check port 8080 inter 2000 rise 2 fall 5 ssl verify none

backend bck_deny
    mode http
    http-request deny

10.10.10.10はmyservice.example.orgにマップされた新しいサービスのVIPです。

入場http://oldserver.example.org:8080いつものようにうまく動作します。

質問: https://myservice.example.org「403禁止」エラーが発生しました。 Tomcatログにトレースがないため、このURLにアクセスしてもTomcatバックエンドに到達しないようです。 (注:HAProxy設定はここにありましたが、mode http「503サービスが利用できません」エラーが発生しました。)

答え1

SSL証明書の検証を無効にするバックエンドオプションが原因で問題が発生したことがわかりましたssl verify none

変更されたジョブ構成は次のとおりです。

frontend myservice
    mode    tcp
    option  tcplog
    option  logasap
    log     global
    option  tcpka
    bind    10.10.10.10:80
    bind    10.10.10.10:443 ssl crt /etc/ssl/haproxy/myservice.example.org.pem
    acl secure dst_port eq 443
    http-response add-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload;"
    http-response replace-header Set-Cookie (.*) \1;\ Secure if secure
    use_backend bck_myservice if { hdr(Host) -i myservice.example.org myservice }
    default_backend bck_deny

backend bck_myservice
    mode     tcp
    balance  leastconn
    option   prefer-last-server
    server   oldserver.example.org oldserver.example.org:8080 weight 1 check port 8080 inter 2000 rise 2 fall 5

backend bck_deny
    mode http
    http-request deny 

関連情報