带有 mod24_ssl 的 Apache httpd24 不会从 http 重定向到 https

Posted

技术标签:

【中文标题】带有 mod24_ssl 的 Apache httpd24 不会从 http 重定向到 https【英文标题】:Apache httpd24 with mod24_ssl is not redirecting from http to https 【发布时间】:2016-12-08 05:38:24 【问题描述】:

我有我的 Amazon linux 服务器,并且已经安装了 httpd24 和 mod24_ssl。 我已经在 /etc/httpd/conf.d/ssl.conf 文件中设置了带有 https 重定向说明的 ssl 证书:

<VirtualHost *:80>
ServerName example.com:80
RewriteCond %HTTPS off
RewriteRule ^(.*)$ https://%HTTP_HOST$1 [R=301,L]
</VirtualHost>

<VirtualHost _default_:443>
ServerName example.com:443
SSLEngine on
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLProxyProtocol all -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile /etc/example.com/cert.pem
SSLCertificateKeyFile /etc/example.com/privkey.pem
SSLCertificateChainFile /etc/example.com/chain.pem
</VirtualHost>

但是httpd 可以正常启动,没有任何问题。但是重定向不起作用。我有其他文件/etc/httpd/conf/httpd.confhere。我可能错过了什么。?我遇到了很多文章,但都没有解决我的问题。

【问题讨论】:

【参考方案1】:

您缺少RewriteEngine on请将其添加到配置文件并重新启动 Apache。检查下面的编辑。

<VirtualHost *:80>
ServerName example.com:80
RewriteEngine on
RewriteCond %HTTPS off
RewriteRule ^(.*)$ https://%HTTP_HOST$1 [R=301,L]
</VirtualHost>

<VirtualHost _default_:443>
ServerName example.com:443
SSLEngine on
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLProxyProtocol all -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile /etc/example.com/cert.pem
SSLCertificateKeyFile /etc/example.com/privkey.pem
SSLCertificateChainFile /etc/example.com/chain.pem
</VirtualHost>

【讨论】:

是的。我犯的愚蠢错误。非常感谢。我确实改变了,但现在它在加载页面时提供了太多重定向。

以上是关于带有 mod24_ssl 的 Apache httpd24 不会从 http 重定向到 https的主要内容,如果未能解决你的问题,请参考以下文章

mod_proxy,mod_ssl,带有 SSLProxyEngine 到内部 F5...内部 F5 向 apache 发送 TCP RESET

带有 mod-proxy 和 SSL 的 Apache VirtualHost

mod_ssl 与 mod24_ssl AWS

无法加载 Apache mod_ssl

带有客户端身份验证的 Apache HTTPD/mod_proxy/Tomcat 和 SSL

安装 mod_ssl 会导致 httpd 出现分段错误