2016-12-02 93 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