Я недавно создал сертификат SSL на своем сервере *.key
и *csr
файл.
Затем я создал *crt
и *.ca-bundle
с Comodo.
У меня есть 2 текущих хоста:
vhost для - http://www.example.com
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin user@example.com
DocumentRoot "/home/example/public_html/example.com/httpdocs"
ServerName example.com
ServerAlias www.example.com
</VirtualHost>
vhost для https://www.example.com
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/server.key
<Directory /home/example/public_html/example.com/httpdocs>
AllowOverride All
</Directory>
DocumentRoot /home/example/public_html/example.com/httpdocs
ServerName example.com
</VirtualHost>
Проблема в том, что когда я иду в https://www.example.com
Я получаю 404
Я не уверен, верны ли vhost (ы) или почему я получаю 404. Кто-нибудь видел это раньше?
Я включил mod_ssl
и перезапустил apache
Большое спасибо
Виртуальный хост SSL по умолчанию в ssl.conf
делает две вещи:
ServerName
или ServerAlias
на другом vhost на основе имён.Просто удалите NameVirtualHost
команда не поможет, так как vhost в ssl.conf
тогда получит каждый запросить порт 443. Вместо этого полностью отключите этот виртуальный хост; вы не хотите и не нуждаетесь в этом.
И вам все равно придется иметь дело с несоответствием сертификата; ваш сертификат должен охватывать имя хоста, которое используют ваши клиенты.
Без особых уловок HTTPS не поддерживает NameVirtualHosts; удалять NameVirtualhost *:443
из конфига.
Тем не менее, ServerName не соответствует сертификату CN - измените его на www.example.com.
Перезагрузите apache.
Добавить ServerAlias www.example.com
к vhost с поддержкой SSL.