Tôi có một NGINX lắng nghe trên cổng 441 và SSLH lắng nghe các cổng: 441(https), 442(ssh) và cuối cùng là STUNNEL lắng nghe trên cổng 443 chuyển tiếp tới SSLH(cổng 2243).
Cấu hình STUNNEL:
pid = /var/run/stunnel.pid
chứng chỉ = /etc/letsencrypt/live/f1.example.com/fullchain.pem
khóa = /etc/letsencrypt/live/f1.example.com/privkey.pem
[sslh]
chấp nhận = 443
kết nối = 127.0.0.1:2243
Cấu hình SSLH:
DAEMON_OPTS="--user sslh --listen 127.0.0.1:2243 --ssh 127.0.0.1:442 --ssl 127.0.0.1:441 --pidfile /var/run/sslh/sslh.pid"
Cấu hình NGINX:
người phục vụ {
server_name f1.example.com;
nghe 441;
access_log /var/log/nginx/f1.access;
error_log /var/log/nginx/f1.error;
vị trí /quản trị viên/ {
proxy_pass http://127.0.0.1:10000/;
proxy_set_header Máy chủ lưu trữ $host;
proxy_redirect http://$host:10000/ /admin/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
người phục vụ {
nghe 80;
trả về 302 https://$host$request_uri;
}
Như bạn có thể thấy tôi đang chạy Ứng dụng WEBMIN trong đường dẫn /admin/ với proxy ngược sử dụng NGINX. Vấn đề của tôi ở đây là khi tôi chỉ gõ f1.example.com/admin trong trình duyệt, nó sẽ chuyển hướng đến phiên bản HTTPS https://f1.example.com/admin.
Sau khi đăng nhập thành công, nó chuyển hướng đến http://f1.example.com:441/admin/sysinfo.cgi?xnavigation=1 trong HTTP có cổng 441 (Tôi đang tự hỏi làm thế nào số cổng được chèn vào đây). Trang tải tốt nhưng không phải bằng HTTPS. Tôi phải xóa số cổng theo cách thủ công và nhấn enter để nâng cấp lên HTTPS.
Làm cách nào tôi có thể làm cho điều này hoạt động trơn tru với HTTPS? Những thay đổi tôi cần thực hiện đối với tệp conf NGINX của mình là gì? Tôi cảm thấy như tôi đang thiếu một cái gì đó ở đây.