web-dev-qa-db-ja.com

HAProxyでグローバルにHTTP Strict Transport Headerを有効にする

HAProxy v1.5のすべてのバックエンドでHTTP Strict Transport Security(HSTS)ヘッダーをグローバルに有効化したい。

https://www.haproxy.com/blog/haproxy-and-http-strict-transport-security-hsts-header-in-http-redirects/ からの指示に従って、以下を追加できますバックエンド構成ファイルへの行とそれが期待どおりに動作します。

http-response set-header Strict-Transport-Security max-age=16000000;\ 
includeSubDomains;\ preload;

私はダースのバックエンドファイルを持っていますが、将来的にはもっと増えるでしょう。これを一箇所に設定したいのですが。

Apacheのhttpd.confでグローバルに設定する方法と同様のものを希望します。

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
2
kenlukas

haproxyには、Apacheのような階層構成はありません。これは可能ではないと思います。

3
longneck

HAPROXYはこのためHSTSをサポートしています。以下の手順に従いました。

ここに私のcfgファイルがあります

ステップ#1静的暗号を追加します(私はグッドウィルのために行う必要はありません)

frontend http-in
    bind 192.168.71.20:443 ssl crt /etc/ssl/private/domain.pem ca-file /etc/ssl/private/domain/domain.ca-bundle no-sslv3 force-tlsv12 no-tls-tickets ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA384:AES128-SHA256:AES128-SHA:AES256-SHA256:AES256-SHA:!MD5:!aNULL:!DH:!RC4

手順#2 ACLを作成して安全なパケットをマークする

    # Distinguish between secure and insecure requests
acl secure dst_port eq 443

クッキーを保護する

    # Mark all cookies as secure if sent over SSL
rsprep ^Set-Cookie:\ (.*) Set-Cookie:\ \1;\ Secure if secure

最後にHSTS設定を適用します

    # Add the HSTS header with a 1 year max-age
rspadd Strict-Transport-Security:\ max-age=31536000 if secure

その後、haproxyを再起動します

0
Mansur Ali