2017-04-20 80 views
0

我得到稍微瘋狂:)如何使redirectSSL在虛擬主機

我有一個域example.com和我有一個SSL證書www.example.com 的example.com指的是IP地址的服務器(這是一個EC2實例)。

在服務器的vhost.conf我有以下的條目

<VirtualHost *:80> 
    ServerName example.com 
    Redirect permanent/https://www.example.com/ 
</VirtualHost> 

<VirtualHost _default_:443> 
    ServerName www.example.com 
    DocumentRoot /var/www/vhosts/example-wp 
    SSLEngine On 
    ... 
</VirtualHost> 

我把從Apache維基的信息。 https://wiki.apache.org/httpd/RedirectSSL

感謝您的幫助 特里斯坦

+0

不確定這裏出現了什麼問題。您已經擁有所需的指令來執行重定向到HTTPS。當然還有其他一些指令,比如SSLCipherSuite,SSLCertificateFile和SSLCertificateKeyFile等。 – falconspy

回答

0

您已經列出執行重定向必要的指令。您還需要告訴vhost文件您的證書和證書密鑰的存在位置。您還需要說明用戶瀏覽的目錄是否要加載SSL。請參閱下面的完整示例配置文件。

<VirtualHost *:80> 
    ServerName www.example.com 
    ServerAlias example.com 
    Redirect/https://www.example.com/ 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName www.example.com 
    ServerAlias example.com 
    ServerAdmin [email protected]  

    DocumentRoot /path/to/web/content 
    DirectoryIndex index.php index.html 

    ErrorLog logs/error_log 
    CustomLog logs/access combined 

    SSLEngine on 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 

    SSLCertificateFile /etc/apache2/ssl.crt/certfile.cer 
    SSLCertificateKeyFile /etc/apache2/ssl.key/keyfile.key 

    <Directory "/path/to/web/content/"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    SSLRequireSSL 
    </Directory> 

</VirtualHost> 
+0

感謝您的回答。它仍然不起作用。奇怪的是,應該去www.example.com的重定向不起作用。相反,它被重定向到https://example.com,因此我需要在443個虛擬主機行中包含一個我不想要的ServerAlias example.com。但我需要我的網站在線。用戶會收到一條消息,指出該證書不起作用,但比脫機更好。那麼爲什麼重定向到https www.example.com不起作用? – Tristan

+0

本質上你有不同的「ServerNames」。您可以擁有ServerName和ServerAlias,並且都將其重定向到HTTPS。我更新了我的示例以滿足您的需求。所以,現在如果你使用www.example.com或example.com,它會將你重定向到https:// www.example.com – falconspy

+0

我完全像這樣,但無論出於何種原因,都無法切換到https www.example .com,但僅限https.com,因此證書不起作用。不知道該怎麼做。 – Tristan