如何使redirectSSL在虚拟主机

如何使redirectSSL在虚拟主机

问题描述:

我得到稍微疯狂:)如何使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

您已经列出执行重定向必要的指令。您还需要告诉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