Apache 中的 ssl http 重定向到 https 问题

Apache 中的 ssl http 重定向到 https 问题

我是 apache 新手。需要一些关于将 http 重定向到 https 的建议。看起来 ssl.conf 中的所有内容都很好,一旦我登录到 ssl 环境,我单击的每个链接似乎都想重定向回 http,并收到错误“错误请求 - 您的浏览器发送了此服务器无法理解的请求。原因:您正在向启用 SSL 的服务器端口发送纯 HTTP。请使用 HTTPS 方案访问此 URL。”以下是 ssl.conf 中的代码。有人建议是什么原因导致了这些问题吗?

注意:10.0.0.24:8080 是 Planner 现在在测试环境中运行的端口。这是最近更改的,但由于它只是一个代理,不确定它如何会导致站点的这个区域出现问题?但欢迎提出建议。提前谢谢大家。

代码:

Listen 8001
Listen 8004


<VirtualHost *:8001>
SSLEngine on
ServerName test.mydomainintereactive.com:8001
SSLCertificateFile "/etc/httpd/conf/certs/cert.pem"
SSLCertificateKeyFile "/etc/httpd/conf/certs/test.key"
SSLCertificateChainFile "/etc/httpd/conf/certs/gd_bundle-g2-g1.crt"

SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          etc...
#
# Security and Server protection (GLG - 2015-08)
#
    TraceEnable Off
    ServerSignature Off
    FileETag None

    CustomLog       /var/log/httpd/test-access.log combined
    ErrorLog        /var/log/httpd/test-error.log

#       ErrorDocument   400     https://test.mydomainintereactive.com:8001

    ProxyPreserveHost       On
    ProxyPass       /       http://10.0.0.24:8080/
    ProxyPassReverse        /       http://10.0.0.24:8080/
</virtualhost>

<VirtualHost *:8004>
SSLEngine on
ServerName fun.mydomainintereactive.com:8004
SSLCertificateFile "/etc/httpd/conf/certs/FUN2010Cert.pem"
SSLCertificateKeyFile "/etc/httpd/conf/certs/FUN2010Key2.pem"
SSLCertificateChainFile "/etc/httpd/conf/certs/gd_bundle.crt"

SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          etc..
SSLHonorCipherOrder     on

#
# Security and Server protection (GLG - 2015-08)
#
    TraceEnable Off
    ServerSignature Off
    FileETag None

        CustomLog       /var/log/httpd/fun77-access.log combined
        ErrorLog        /var/log/httpd/fun77-error.log

#       ProxyPreserveHost On
        ProxyPass / http://10.0.0.22:8080/
        ProxyPassReverse / http://10.0.0.22:8080/
</virtualhost>

答案1

您可以使用 mod_rewrite.c 将请求重定向到 https。不过请确保您没有SSLEngine在要重定向的页面上启用此功能。

在这个例子中,我将进入 test.mydomainintereactive.com 端口 80 的所有流量重定向到 test.mydomainintereactive.com 端口 443(标准 https 端口)

<虚拟主机 *:80>
    服务器名称 test.mydomainintereactive.com
    # 这是他们试图去的地方,但应该从那里重定向。
    # 我们可以使用 mod_rewrite.c 来实现这一点

    <IfModule mod_rewrite.c>
        重写引擎开启
        # 如果你想使用 443 以外的其他端口,你可能需要
        # 将其放入下面一行的重定向中。
        重写规则 ^[^\/]*\/(.*) https://test.mydomainintereactive.com/$1 [R=301,L]
     </IfModule>
</虚拟主机>

<虚拟主机 *:443>
    服务器名称 test.mydomainintereactive.com
    # 这是我们想要重定向到的站点。
    # 以及您的 SSL 设置位置。

    SSLEngine 开启
    SSL证书文件“/etc/httpd/conf/certs/FUN2010Cert.pem”
    SSLCertificateKeyFile“/etc/httpd/conf/certs/FUN2010Key2.pem”
    SSLCertificateChainFile“/etc/httpd/conf/certs/gd_bundle.crt”
    # ... ETC。
</虚拟主机>

相关内容