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 с действующим сертификатом и поместить перенаправление на этот виртуальный хост. .
sites-*
каталоги и начать использовать vhost.d
каталог, как и я. Никто не может заставить вас использовать то, что неудобно.