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ì.