web-dev-qa-db-ja.com

SSLを終了するHAProxyもSSLをバックエンドサーバーに送信します

HAProxyでSSLを終了し、ヘッダーを操作し、URLを書き換えてトラフィックを再暗号化し、SSLとしてバックエンドサーバーに送信しますか?

これを行う方法を見つけることができないようです。通常のSSL終了を実行し、プレーンHTTPリクエストをバックエンドに送信できます。しかし、SSLをバックエンドに送信する必要があります。

次の機能が必要です。

  • X-forwarded-forヘッダーを抽出して、プロキシの背後にある実際のクライアントIPを取得します。
  • Cookieを使用してセッションスティッキを実装します。
  • URLの書き換えを行います。
  • Cookieベースのセッションスティッキネスを使用してSSLトラフィックをバックエンドに送信します。

Haproxyの最後でSSLを終了しないと、URLの書き換えを実行できません。

ここで善良な人々からの助けがあれば、高く評価されます。

15
oazabir

Haproxy.cfgで特別なことはありません。 HAProxyフロントエンド内で必要なURLリライトとヘッダー操作を構成し、トラフィックをSSLバックエンドにリダイレクトするだけです。ここに簡単な例があります:

frontend app1_ssl
    bind *:443 ssl crt /etc/haproxy/certs.d/example.com.crt crt /etc/haproxy/certs.d/ no-sslv3

    option http-server-close
    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Port:\ 443

    # set HTTP Strict Transport Security (HTST) header
    rspadd  Strict-Transport-Security:\ max-age=15768000

    # some ACLs and URL rewrites...

    default_backend             backend_app1_ssl


backend backend_app1_ssl
    server mybackendserver 127.0.0.1:4433 ssl verify none
31
Tubeless