使用 apache。我有一个通常使用 https 的 Web 应用演示。但是,对于演示,我希望所有流量都在 http 上,即使用户点击 https。
我添加了以下条目,如果您访问 http://AAAA.com:443,它会起作用,但如果您访问 https://AAAA.com,它会不起作用。
它给出这个错误:
SSL received a record that exceeded the maximum permissible length.
(Error code: ssl_error_rx_record_too_long)
以下是我当前的设置:
<VirtualHost 111.111.111.1:443>
ServerName test.AAAA.com
DocumentRoot /var/www/AAAA.com
</VirtualHost>
如何重定向 https->http 而不遇到 SSL 错误。换句话说,关闭 https:// 的 SSL
答案1
你不知道。
如果您想要从 重定向https://wherever
到http://wherever
,那么 的端口 443wherever
实际上需要提供 HTTPS,即使它仅足以提供证书并无条件重定向。这样做意味着它将http://wherever:443
无法工作,但究竟为什么有人会期望它能工作呢?
可能存在某个自定义服务器,它足够智能,可以区分 SSL 协商和普通 HTTP 请求,并在任何一种情况下执行正确的操作,但它不是 Apache 的标准部分。
您有三个选择:
- 分别通过 HTTP 和 HTTPS 在 80 和 443 上配置应用程序
- 仅在其中一个上进行配置,并将另一个配置为重定向
- 仅在其中一个上进行配置,并且不使用重定向(确保没有任何东西指向另一个)
(HTTP 和 HTTP-over-SSL 是完全不同的网络协议:您不能指望没有专门设计用于在同一端口上进行通信的东西能够做到这一点)。
答案2
在这种情况下,浏览器正在请求 https 会话(它在 URL 中)。如果 443 上没有实际使用 SSL,您将无法重定向浏览器以使用非 SSL。
答案3
你不能只将 VirtualHost 更改为监听 80 端口,将 https 替换为 http 然后就完事了吗?