Ssl-Certificate
將 www 重定向到非 www (apache,letsencrypt)
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 設置一個單獨的虛擬主機,並將重定向放在該虛擬主機中.