Ssl-Certificate

將 www 重定向到非 www (apache,letsencrypt)

  • January 13, 2016

Ubuntu 14.04 阿帕奇 2.4.18

我已經使用letsencrypt設置了SSL證書。它工作得很好,但為了工作,我不能在一個虛擬主機配置文件中定義多個虛擬主機。每個虛擬主機都必須位於 /etc/apache2/sites-available 中自己的 .conf 文件中。

我需要確保對 www.example.com 的所有請求都重定向到 example.com。由於我需要在唯一的虛擬主機文件中解決它,我試圖在其中包含一個重寫規則來執行重定向,但到目前為止它默默地失敗了:所有https://www.example.com請求都沒有被重定向到https ://example.com並顯示“不安全的網站”警告。

這是 domain.com-le-ssl.conf 的虛擬主機配置文件。

<IfModule mod_ssl.c>
<VirtualHost *:443>
       ServerName example.com
       ServerAlias www.example.com

       RewriteEngine on
       RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
       RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

       DocumentRoot /home/user_account/www/example.com/public
       <Directory /home/user_account/www/example.com/public>
               Options Indexes FollowSymLinks
       AllowOverride All
       Require all granted
   </Directory>

       ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/user_account/www/example.com/public/$1

SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

由於您的 SSL 證書對 www.example.com 無效,因此當有人使用 www.example.com 訪問您的網站時,他們會收到證書警告。無論是否為他們提供重定向,都會發生這種情況。否則,將有可能創建到任何站點的重定向,並且看起來值得信賴。

您需要做的是獲得一個涵蓋 www.example.com 和 example.com 的證書,或者使用有效證書為 www.example.com 設置一個單獨的虛擬主機,並將重定向放在該虛擬主機中.

引用自:https://serverfault.com/questions/748762