Điểm:0

Có thể sử dụng HAProxy trước Stunnel với SNI không?

lá cờ cn

Tôi có một Chấm dứt SSL đang hoạt động với STunnel trước HAproxy.

Gần đây, vấn đề bổ sung hỗ trợ cho HTTP/2 đã được đưa ra theo cách của tôi. Điều đó thật dễ dàng với HAProxy, nhưng, như một hạn chế, STunnel phải ở lại.

Lý do STunnel cần ở lại là khoảng 17000 dòng SNI và khả năng quản lý chúng thông qua API đã có sẵn.

Tôi rất có thể thêm một danh sách chứng chỉ cho HAProxy có chứa SNI, một vài greps và echos sẽ đánh dấu.

Tuy nhiên, trong quá trình tìm kiếm của tôi, tôi chưa tìm thấy ai đặt HAProxy trước STunnel trước HAProxy. Đó có phải là cách tiếp cận sai?

Đây là những gì tôi đã bắt đầu làm việc (chưa có SNI nào trong đó - 17000 trong số đó sẽ hơi quá cho một bài đăng):

Giao diện người dùng HAProxy (nơi tôi cần thêm hỗ trợ HTTP/2) với mã hóa đối với STunnel:

nghe phía trước
ràng buộc 192.168.1.100:443 trong suốt  
chế độ http  
máy chủ stunnel 127.0.0.100:443 ssl không xác minh

đường hầm

[STtunnel]
    chứng chỉ = /etc/ssl/certs/cert.pem
    mật mã =
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256
-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA
256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-
RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-
RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
    chấp nhận = 127.0.0.100:443
    kết nối = 127.0.0.100:80
    chậm trễ = có
    tùy chọn = NO_SSLv3
    tùy chọn = NO_TLSv1
    tùy chọn = NO_TLSv1.1
    tùy chọn = NO_TLSv1.3
    tùy chọn = CIPHER_SERVER_PREFERENCE
    tùy chọn = DONT_INSERT_EMPTY_FRAGMENTS
    đàm phán lại = không
    giao thức = proxy
    cục bộ = 127.0.0.100
    TIMEOUTđóng = 0

HAProxy "phụ trợ"

nghe Web
ââââbind 127.0.0.100:80 proxy chấp nhận trong suốt
ââââchế độ http
ââââcân bằng leastconn
ââââacl SSL-443 src 127.0.0.100
ââââtcp-yêu cầu kết nối mong đợi lớp proxy4 nếu STunnel
ââââtùy chọn http-keep-alive
ââââhết thời gian chờ http-request 5 giây
ââââthời gian chờ đường hầm 1h
ââââtùy chọn gửi lại
ââââoption abortonclose
ââââmaxconn 40000
ââââtùy chọn httplog
ââââmáy chủ1 192.168.1.98:80 kiểm tra
ââââmáy chủ server2 192.168.1.99:80 kiểm tra

Tôi cho rằng mã hóa là bắt buộc từ HAProxy đến STunnel và tôi sẽ cần tính đến bất kỳ giao thức nào không khớp giữa các giao thức đó.

Phiên bản STunnel của HAProxy là gì lớp kết nối yêu cầu tcp mong đợi lớp proxy4 nếu STunnel sẽ là?

Bất kỳ trợ giúp nào trong việc nhận hỗ trợ HTTP/2 với STunnel đều được đánh giá rất cao, cũng như nhận được thông báo "Đừng làm vậy, điều đó là sai".

Cảm ơn bạn,

Marco avatar
lá cờ in
Tôi cho rằng haproxy dù sao cũng cần SNI (chứng chỉ), vì nó phải xử lý liên hệ với khách hàng. Làm thế nào điều này nên được thực hiện mà không có giấy chứng nhận?
Marco avatar
lá cờ in
Nếu haproxy không có chứng chỉ, nó không thể xem nội dung của yêu cầu và không thể nói chuyện HTTP/2 với máy khách. Bạn muốn đặt dữ liệu không thay đổi vào stunnel, nhưng điều này có nghĩa là stunnel phải thực hiện HTTP/2 và bạn đang ở bước đầu. Tóm tắt: sẽ chỉ hoạt động nếu hproxy có chứng chỉ để giải mã ssl và mã hóa lại để gửi đến stunnel. Có thể hoạt động, nhưng có thể dẫn đến một vấn đề về hiệu suất.
Ai N. avatar
lá cờ cn
@Marco đó cũng là suy nghĩ của tôi. Và không giống như tôi có thể sử dụng ký tự đại diện hoặc chứng chỉ giả vì SNI cần phải có ở giao diện người dùng "mặt trước". Đã hy vọng tôi có thể thực hiện cấu hình kết hợp giảm tải thông qua. Dù bằng cách nào, tôi hiện đang chuyển mọi thứ sang HAProxy và thực hiện danh sách chứng chỉ cũng như cập nhật nó một cách linh hoạt bằng cách sử dụng [liên kết] này(https://www.haproxy.com/blog/dynamic-ssl-certificate-storage-in-haproxy/ )
Marco avatar
lá cờ in
Tôi sẽ vứt bỏ stunnel và chỉ sử dụng haproxy. Việc xử lý chứng chỉ trong haproxy rất dễ dàng, chỉ cần đặt tất cả chúng vào một thư mục. haproxy tự tìm cái để sử dụng. Nhưng tôi không có 17000 trong môi trường của mình. Tôi nghĩ rằng các phiên bản haproxy mới hơn phát hiện các thay đổi và tự tải lại. Tốt nhất, hãy kiểm tra nó trên một cổng khác song song với cấu hình stunnel của bạn.
Ai N. avatar
lá cờ cn
@Marco Tôi đã quyết định chuyển tất cả sang HAProxy, điều đó hợp lý (ngoài ra, tôi biết một số phiên bản mà STunnel bị lỗi). Bạn có thể vui lòng gửi bình luận của bạn như một câu trả lời để tôi có thể chấp nhận nó? Cảm ơn rất nhiều.
Điểm:0
lá cờ in

haproxy chỉ có thể xem dữ liệu (giao thức HTTP/2) nếu nó có chứng chỉ giải mã ssl. Có nghĩa haproxy cần các chứng chỉ có sẵn giống như đường hầm.

Nếu điều này hoạt động theo một cách nào đó, điều này có nghĩa là giải mã nó cho haproxy và mã hóa nó một lần nữa cho đường hầm, để cho nó giải mã lại.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.