gpt4 book ai didi

apache - 使用 ProxyPass 将 HTTP 页面重定向到 HTTPS 到 Tomcat 服务器

转载 作者:行者123 更新时间:2023-11-28 23:27:16 25 4
gpt4 key购买 nike

所以我有一个在端口 8080 上运行的 tomcat 服务器,以及一个在端口 80 和 443 上运行的 apache 服务器。我可以使用这些虚拟主机让整个网站重定向到 https:

<VirtualHost *:80>
Redirect permanent / https://localhost
</VirtualHost>

<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/httpd/crt/localhost.crt
SSLCertificateKeyFile /etc/httpd/crt/localhost.key
ProxyRequests off
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /catdapp http://localhost:8080/
ProxyPassReverse /catdapp http://localhost:8080/
</VirtualHost>

但是,我正在尝试获取它,以便它仅在 url 为 localhost/#/loginlocalhost/catdapp/#/login 时重定向到 https。 p>

我尝试了以下方法:

<VirtualHost *:80>
Redirect permanent /#/login https://localhost/#/login
Redirect permanent /catdapp/#/login https://localhost/#/login
ProxyRequests off
ProxyPreserveHost on
ProxyPass /#/login !
ProxyPass /catdapp/#/login !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /catdapp http://localhost:8080/
ProxyPassReverse /catdapp http://localhost:8080/
</VirtualHost>

这没有用,控制台显示它正在检索 http://localhost/catdapp/partials/login.html 所以我尝试将其更改为:

<VirtualHost *:80>
Redirect permanent /catdapp/partials/login.html https://localhost/catdapp/partials/login.html
ProxyRequests off
ProxyPreserveHost on
ProxyPass /catdapp/partials/login.html !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /catdapp http://localhost:8080/
ProxyPassReverse /catdapp http://localhost:8080/
</VirtualHost>

然后导致 firefox 控制台输出两个错误:

GET http://localhost/catdapp/partials/login.html 301 Moved Permanently
GET https://localhost/catdapp/partials/login.html 200 OK

apache 访问日志显示:

"GET /catdapp/partials/login.html HTTP/1.1" 301 328 "http://localhost" "Mozilla/5.0 (X11; Linux x84_64; rv:38.0) Gecko/20100101 Firefox/38.0"
"GET /catdapp/partials/login.html HTTP/1.1" 200 2054 "http://localhost" "Mozilla/5.0 (X11; Linux x84_64; rv:38.0) Gecko/20100101 Firefox/38.0"

有什么想法吗?

最佳答案

# 在客户端、浏览器中处理 - 我没有看到它传输到服务器。

我不再担心混合模式操作,只是无条件地将所有内容重定向到 https 并继续:使用 http/https 混合模式,你只会打开很多意想不到的安全漏洞、 session 泄漏或其他(现在)它只是不值得麻烦。添加 HSTS header到 https-virtual-host 并且在你不小心使用错误协议(protocol)的情况下你甚至是安全的(一旦客户端看到 HSTS header ,这应该是常态)

这样会消耗更多的服务器端资源吗?大概,有一点。重要吗?措施!如果您拥有值得保护的资源,则值得排除一整类错误,例如 session 信息泄露、网络钓鱼、MITM 攻击等。

关于apache - 使用 ProxyPass 将 HTTP 页面重定向到 HTTPS 到 Tomcat 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com