Sử dụng Https giữa Apache Loadbalancer và phụ trợ


30

Tôi đang sử dụng máy chủ apache (2.4) được cấu hình là loadbalancer trước 2 máy chủ apache. Nó hoạt động tốt khi tôi sử dụng các kết nối http giữa loadbalancer và backends, tuy nhiên sử dụng https không hoạt động. Cấu hình của loadbalancer:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
<Proxy balancer://testcluster>
  BalancerMember https://[Backend1]:443/test
  BalancerMember https://[Backend2]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

Các phụ trợ chỉ có chứng chỉ tự ký cho đến bây giờ, đó là lý do tại sao xác minh chứng chỉ bị vô hiệu hóa.

Nhật ký lỗi trên loadbalancer chứa các mục sau:

[proxy:error] [pid 31202:tid 140325875570432] (502)Unknown error 502: [client ...] AH01084: pass request body failed to [Backend1]:443 ([Backend1])
[proxy:error] [pid 31202:tid 140325875570432] [client ...] AH00898: Error during SSL Handshake with remote server returned by /test/test.jsp
[proxy_http:error] [pid 31202:tid 140325875570432] [client ...] AH01097: pass request body failed to [Backend1]:443 ([Backend1]) from [...] ()

Trang lỗi trong trình duyệt chứa:

Proxy Error

The proxy server could not handle the request GET /test/test.jsp.
Reason: Error during SSL Handshake with remote server

Như tôi đã trình bày ở trên, việc thay đổi cấu hình thành giao thức http và cổng 80 hoạt động. Ngoài ra các kết nối https giữa máy khách và bộ cân bằng tải hoạt động, do đó mô đun ssl của bộ cân bằng tải dường như được thiết lập đúng. Kết nối trực tiếp với phụ trợ qua https cũng không mang lại bất kỳ lỗi nào.

Cảm ơn trước cho thời gian của bạn


Chỉnh sửa: Tôi đã tìm ra nó, vấn đề là tên chứng chỉ chung của tôi không khớp với tên máy chủ. Tôi nghĩ SSLProxyVerify sẽ không làm cho sự không phù hợp này bị bỏ qua, nhưng nó không. Trước khi apache 2.4.5, kiểm tra này có thể bị vô hiệu hóa bằng cách sử dụng tắt SSLProxyCheckPeerCN nhưng trên các phiên bản cao hơn (tôi đang sử dụng 2.4.7) cũng cần chỉ định tắt SSLProxyCheckPeerName .

Tài liệu Apache cho sslproxycheckpeername

Cấu hình làm việc trông như thế này:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

Thật không may, tôi không thể trả lời câu hỏi của mình vì thiếu danh tiếng nên tôi đã chỉnh sửa câu hỏi của mình, tôi hy vọng điều này sẽ giúp bất cứ ai gặp phải vấn đề tương tự


Hấp dẫn. Tôi đã từng làm điều này với apache2.2 và không bao giờ phải SSLProxyVerify không và không bao giờ có vấn đề với các certs tự ký. Bạn chắc chắn máy chủ phụ trợ là tốt.?
ETL

@ETL Tôi không biết "SSLProxyVerify none" có bắt buộc hay không, tôi chỉ nói thêm rằng với hy vọng nó có thể khắc phục được sự cố. Gọi "wget ​​https: // [backend1] /test/test.jsp --no-check-cert" trên máy chủ cân bằng tải tải xuống tệp dự kiến. ng
user3240383

Câu trả lời:


16

Vấn đề hóa ra là tên chung của chứng chỉ không khớp với tên máy chủ.

Trước Apache 2.4.5, kiểm tra này có thể bị vô hiệu hóa bằng cách sử dụng SSLProxyCheckPeerCN offnhưng trên các phiên bản cao hơn (như 2.4.7) SSLProxyCheckPeerName offcũng cần được chỉ định.

Tài liệu Apache cho SSLProxyCheckPeerName

Cấu hình làm việc trông như thế này:

SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off

<Proxy balancer://testcluster>
  BalancerMember https://[backend1]:443/test
  BalancerMember https://[backend1]:443/test
</Proxy>
ProxyPass /test balancer://testcluster

Bạn có thể kiểm tra phiên bản Apache mà bạn có :

apachectrl -V

Xin chào, tôi có cùng một vấn đề ngoại trừ cấu hình hơi khác nhau: <Location /margin-tool> ProxyPass https://xxxx.thoughtworks.net:8443/margin-tool ProxyPassReverse https://xxxx.thoughtworks.net:8443/margin-tool </Location>Các cài đặt tương tự không hoạt động. Có ý kiến ​​gì không?
dùng157735

0

Thêm vào dưới đây đã giải quyết vấn đề

SSLProxyProtocol +TLSv1

5
Đưa ra các mẫu cấu hình thần bí không phải là một câu trả lời chất lượng tốt. Các chuỗi sao chép từ internet không phải là điều mà một quản trị viên hệ thống chuyên nghiệp làm. Giải thích nó, những gì nó làm và tại sao.
peterh nói rằng phục hồi Monica

chạy vào đây với java12 - trong số những thứ khác, điều này đã giải quyết vấn đề của tôi ....
womd

-2

tôi sử dụng apache 2.4.9 và thêm vào httpd-ssl.conf đoạn mã sau

SSLProxyProtocol + SSLv3 + TLSv1 + TLSv1.1

tôi đã giải quyết vấn đề


3
Bạn đã từng nghe về POODLE chưa? SSLv3 nên bị vô hiệu hóa.
Sven

2
SSLv3 dễ bị tấn công
người trong cuộc
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.