nginx将内部http服务公开为https子域

我在这个网站和类似的网站上发现了几个部分的答案,但是我不知道如何把它们放在一起,或者答案就在那里,我无法识别它:

我正在努力实现的是:

我有一个在局域网中运行的http服务(我已经正确设置了dnsmasq):

http://subdomain1.domain.com:1234/

我想公开它作为互联网(也外部DNS工作正常):

https://subdomain2.domain.com:443/

用户authentication由nginx处理。

我也想(必须)在浏览器中保持URL不被修改。

我已经尝试过几个类似问题的组合,但似乎没有什么组合。

这是我的最后一次尝试:

ssl_certificate /var/www/domain.com/domain_com.crt; ssl_certificate_key /var/www/domain.com/domain_com.key; server { listen 443 default_server; server_name subdomain1.domain.com; location / { auth_basic "Restricted"; auth_basic_user_file /var/www/domain.com/domain.com.passwords; proxy_pass http://subdomain1.domain.com:1234/; proxy_set_header Host $http_host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect https://subdomain2.domain.com/ http://subdomain1.domain.me:1234/; } } 

我得到的是:“错误107(net :: ERR_SSL_PROTOCOL_ERROR):SSL协议错误。”


更新:

我想我find了一个解决scheme,但审查仍然不胜感激。 这一个也重写http访问通过https。

 ssl_certificate /var/www/domain.com/domain_com.crt; ssl_certificate_key /var/www/domain.com/domain_com.key; server { listen 80; server_name subdomain1.domain.com; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443; ssl on; server_name subdomain1.domain.com; location / { auth_basic "Restricted"; auth_basic_user_file /var/www/domain.com/domain.com.passwords; proxy_pass http://subdomain2.domain.com:1234/; proxy_set_header Host $host; 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; add_header Front-End-Https on; proxy_redirect off; } }