2016-12-02 87 views
2

尝试强制所有流量转换为AWS(ec2/Bitnami/Wordpress)上的https。Apache VirtualHost设置强制https

中的httpd-vhosts.conf当前设置...

<VirtualHost *:80> 
    ServerName wordpress.example.com 
    ServerAlias www.wordpress.example.com 
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs" 

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf" 
</VirtualHost> 
<VirtualHost *:443> 
    ... 
</VirtualHost> 

我可以简单地重定向像更换ServerAlias ...

<VirtualHost *:80> 
    ServerName wordpress.example.com 
    Redirect/https://www.wordpress.example.com 
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs" 

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf" 
</VirtualHost> 
<VirtualHost *:443> 
    ... 
</VirtualHost> 

我认为重定向不仅会将会话整合到规范的“www”中,而且还会使它们成为HTTPS。

它会以这种方式工作,还是我仍然需要ServerAlias指令?

如果需要,ServerAlias会在重定向之前还是之后出现?

最后,如果ServerAlias在重定向之后,并且不包含“https:// ...”,那么它是否允许非HTTPS会话?

BTW,我尝试下面的Bitnami suggested solution,但它不工作...

<VirtualHost *:80> 
RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 
... 
</VirtualHost> 

回答

0

为我工作的解决方案是编辑该文件:

/opt/bitnami/apache2/conf/bitnami/bitnami.conf 

添加...

<VirtualHost _default_:80> 
    DocumentRoot "/opt/bitnami/apache2/htdocs" 
    RewriteEngine On 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 
    ... 
</VirtualHost> 

据Bitnami,this edit部队Bitnami运行的所有应用程序加载的HTTPS。由于WordPress是我运行的唯一的应用程序,这个解决方案为我工作。 Bitnami指令forcing https just on wordpress对我来说不起作用

1

看起来,你是正确的道路上。我正在使用永久重定向,并且工作完美无瑕。

RedirectMatch永久^(。*)$ https://www.wordpress.example.com $ 1

而且,由于你重定向到https,不需要的文档根目录和其他配置。您的所有配置都需要在您的https虚拟主机上进行。

+0

我添加了你的指令并重新启动了apache,但我仍然收到不安全的会话。我假设你只使用“ServerName wordpress.example.com”和“RedirectMatch ...”指令? – webguy

+0

在端口80的虚拟主机开始时,我只设置了ServerName,ServerAlias,然后是上面的重定向。其他一切都被注释掉了。另外,仔细检查一下你没有在通用apache2中设置DocumentRoot。conf或任何其他引用的conf文件。 –

+0

在/opt/bitnami/apache2/conf/http.conf中我有(并保留)... DocumentRoot“/ opt/bitnami/apache2/htdocs” 但是,我能够通过遵循Bitnami文档并编辑/opt/bitnami/apache2/conf/bitnami/bitnami.conf来强制https,以在所有应用程序上强制使用https,而不仅仅是wordpress。 – webguy

2

Bitnami Developer here。您使用的说明是为了使用Bitnami LAMP堆栈。我们将更新Application Cloud Images的文档,比如Bitnami Wordpress。在这种情况下,您将不得不编辑httpd-app.conf文件,而不是编辑httpd-prefix.conf文件。

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L] 
RewriteRule /<none>/[L,R] 

重启Apache:

sudo /opt/bitnami/ctlscript.sh restart apache 

现在重定向将被迫。

+0

那么你的文档就会说“如何强制应用程序的HTTPS重定向?” 在第一个VirtualHost指令中的/opt/bitnami/apps/myapp/conf/httpd-vhosts.conf文件中添加以下内容:“如果那样为你的WPress包工作,你应该注意到这个例外。 – webguy

+0

我们正在改进文档以使此信息更清晰。谢谢!问题解决了吗? –

+0

是的,我只是留在编辑/opt/bitnami/apache2/conf/bitnami/bitnami.conf强制所有应用程序的HTTPS。 – webguy