HAProxy để chấm dứt SSL cũng gửi SSL đến máy chủ phụ trợ


14

Tôi muốn chấm dứt SSL tại HAProxy, thực hiện một số thao tác trên tiêu đề, viết lại URL và mã hóa lại lưu lượng và gửi đến các máy chủ phụ trợ dưới dạng SSL?

Tôi dường như không thể tìm ra cách để làm điều này. Tôi có thể hoàn thành việc chấm dứt SSL thường xuyên và gửi các yêu cầu HTTP đơn giản đến phụ trợ. Nhưng tôi cần gửi SSL đến phụ trợ.

Tôi muốn có các tính năng sau:

  • Trích xuất các tiêu đề x-chuyển tiếp-cho, để có được IP máy khách thực sự phía sau proxy.
  • Thực hiện độ dính phiên bằng cookie.
  • Làm một số URL viết lại.
  • Gửi lưu lượng SSL đến phụ trợ bằng cách sử dụng phiên bản dựa trên cookie.

Trừ khi tôi chấm dứt SSL ở cuối haproxy, tôi không thể thực hiện viết lại URL.

Bất kỳ trợ giúp từ những người tốt ở đây sẽ được đánh giá cao.


1
Bạn có thể đăng cấu hình hiện tại của bạn và cho chúng tôi biết những gì không hoạt động?
GregL

Câu trả lời:


30

Không có gì đặc biệt để làm trong haproxy.cfg. Bạn chỉ cần định cấu hình bất kỳ URL nào viết lại và thao tác tiêu đề bạn muốn trong giao diện HAProxy của bạn và sau đó chuyển hướng lưu lượng truy cập đến phụ trợ SSL của bạn. Đây là một ví dụ nhanh:

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

1
Tuyệt vời! Hãy để tôi thử điều đó. Tôi không thể tìm thấy thứ "máy chủ .... ssl" đó ở bất cứ đâu.
oazabir

Rất cảm ơn vì sự giúp đỡ của bạn. Tôi đã có thể làm cho nó hoạt động. Tuy nhiên, tôi không thể làm cho SSL dính vào hoạt động. Bạn có thể giúp tôi không? Câu hỏi nằm ở đây: serverfault.com/questions/738397/
Kẻ

Thật tuyệt, tôi rất vui vì tôi đã có thể giúp đỡ. Đừng quên chấp nhận câu trả lời của tôi để người khác có thể thấy ngay rằng nó rất hữu ích ;-)
Tubless

Liệu mã hóa có thực sự hoạt động bằng cách cho ssl xác minh không? Từ tài liệu haproxy, "Nếu được đặt thành 'none', chứng chỉ máy chủ không được xác minh. Trong trường hợp khác, Chứng chỉ do máy chủ cung cấp được xác minh bằng CA từ 'ca-file'". Ai đó có thể xin vui lòng làm rõ điều này?
mjm

Với ssl verify nonelưu lượng giữa HAProxy và máy chủ phụ trợ vẫn được mã hóa, nhưng không kiểm tra tính hợp lệ của chứng chỉ SSL của phụ trợ.
không săm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.