Điểm:0

Truyền chứng chỉ HTTPS từ máy chủ hạ lưu thông qua proxy NGINX cho máy khách

lá cờ de

Tôi có một nhóm máy tính biên Ubuntu lưu trữ các máy chủ web HMI đơn giản. Nhiều người đứng sau các IP động không có khả năng chuyển tiếp cổng.

Vì vậy, để truy cập chúng, mỗi người sử dụng autossh để tạo đường hầm ngược vào máy chủ proxy đám mây trung tâm. Sau đó tôi có thể truy cập từng cái với https://proxy.mydomain.com:6001, 6002, v.v. Điều này đang hoạt động.

Bây giờ tôi muốn sử dụng NGINX để không phải nhớ số cổng. Vì vậy, mỗi cơ sở sẽ có tên miền phụ của riêng nó: https://site1.mydomain.com, site2, v.v. Tất cả các tên miền phụ sẽ trỏ đến máy chủ proxy của tôi. Sau đó, NGINX sẽ xem xét tên miền phụ và lưu lượng truy cập proxy https đến cổng đường hầm ngược thích hợp.

Cấu hình NGINX được hiển thị bên dưới.

Vấn đề của tôi tại thời điểm này là NGINX muốn tôi xác định chứng chỉ SSL. Tuy nhiên, tôi muốn sử dụng các chứng chỉ đã được cài đặt trên mỗi máy tính biên.

Vì vậy, làm cách nào để chuyển các chứng chỉ đó qua proxy NGINX cho máy khách?

Nếu điều này là không thể - cách tốt nhất để xác định một hoặc các chứng chỉ riêng biệt trên máy chủ proxy có thể được sử dụng cho tất cả các miền phụ là gì?

người phục vụ {
    nghe 443 ssl;
    server_name site1.mydomain.com;
    địa điểm / {
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_pass https://127.0.0.1:6001;
        proxy_ssl_server_name bật;
        proxy_redirect tắt;
    }
}

người phục vụ {
    nghe 443 ssl;
    server_name site2.mydomain.com;
    địa điểm / {
        proxy_set_header Máy chủ lưu trữ $host;
        proxy_pass https://127.0.0.1:6002;
        proxy_ssl_server_name bật;
        proxy_redirect tắt;
    }
}

CẬP NHẬT Đối với những người tò mò, tôi đã có thể sử dụng dự án "SNIProxy" thay vì NGINX và giải quyết vấn đề này. Chứng chỉ HTTPS được thông qua mà không gặp vấn đề gì.

Điểm:0
lá cờ cn

Bạn có thể sử dụng chứng chỉ ký tự đại diện *.mydomain.com cho proxy của bạn.
Khóa riêng tư + chứng chỉ này sẽ hoạt động với bất kỳ tên miền phụ nào.
Miễn phí từ let's mã hóa (certbot) hoặc trả phí từ một CA như digicert.

djdomi avatar
lá cờ za
hãy nhớ thêm domain.tld VÀ *.domain.tld nếu không chứng chỉ của bạn sẽ bị thiếu thông tin;)
Điểm:0
lá cờ us

Bạn có thể dùng dòng mô-đun để chuyển qua giao thức TLS nguyên trạng cho các máy khách.

Bản thân tôi chưa sử dụng cấu hình này nên có thể không chính xác 100% nhưng sẽ hiển thị các nguyên tắc.

dòng {
    nghe 443;
    ssl_preread on;
    proxy_connect_timeout 1 giây;
    proxy_timeout 3s;
    proxy_pass $upstream;
}

bản đồ $ssl_preread_server_name $upstream {
    site1.example.com 127.0.0.1:6001;
    site2.example.com 127.0.0.2:6002;
    trang web mặc định1;
}

bên trong dòng chặn, chúng tôi cho phép đọc trước dữ liệu giao thức SSL. Nginx trích xuất trường SNI vào $ssl_preread_server_name Biến đổi.

Chúng tôi sử dụng bản đồ tính năng chuyển đổi tên máy chủ đọc trước thành đích. Sau đó, đích đến được sử dụng như dòng mô-đun proxy_pass điểm đến.

Ở đây nginx chỉ đọc tên máy chủ cho kết nối SSL, sau đó ủy quyền kết nối TCP đến đích cho tên máy chủ đó.

Đă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.