Назад | Перейти на главную страницу

URL-адрес SSL дает 404

Я недавно создал сертификат 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 делает две вещи:

  1. Он может выбрать, какой сертификат будет представлен клиентам, которые не поддерживают SNI.
  2. Он получает все запросы, которые не соответствуют ServerName или ServerAlias на другом vhost на основе имён.

Просто удалите NameVirtualHost команда не поможет, так как vhost в ssl.conf тогда получит каждый запросить порт 443. Вместо этого полностью отключите этот виртуальный хост; вы не хотите и не нуждаетесь в этом.

И вам все равно придется иметь дело с несоответствием сертификата; ваш сертификат должен охватывать имя хоста, которое используют ваши клиенты.

Без особых уловок HTTPS не поддерживает NameVirtualHosts; удалять NameVirtualhost *:443 из конфига.

Тем не менее, ServerName не соответствует сертификату CN - измените его на www.example.com.

Перезагрузите apache.

Добавить ServerAlias www.example.com к vhost с поддержкой SSL.