Ubuntu 14.04 Apache 2.4.18
Я установил сертификат SSL с помощью letsencrypt. Он работает хорошо, но для работы я не могу иметь несколько виртуальных хостов, определенных в одном файле конфигурации виртуального хоста. Каждый виртуальный хост должен находиться в своем собственном файле .conf внутри /etc/apache2/sites-available.
. Мне нужно убедиться, что все запросы к 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 с действующим сертификатом и поместите перенаправление на этот виртуальный хост.
- *
и начать использовать каталог vhost.d
, как это делаю я. Никто не может заставить вас использовать что-то неудобное.