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

VirtualHosts и SSL, запутанные с правильной настройкой для apache

Я написал много руководств, у некоторых не было дат, некоторые, вероятно, устарели, некоторые не были ясны по некоторым деталям ... Прямо сейчас я запутался. Потратил на это весь день.

Я использую ubuntu 16.04 / apache2 с некоторыми виртуальными хостами.

Я получил сертификат ssl, скачал файлы и загрузил их. Получил файл пакета и файл .crt. Ключевой файл был создан ранее в процессе.

Мой первый вопрос, я думаю, будет о файле конфигурации для виртуального хоста. В некоторых руководствах говорится, что нужно использовать файл: default-ssl.conf, который находится внутри: / etc / apache2 / sites-available, и использовать его в качестве основы.

В другом руководстве говорится, что все детали сертификата включены в основной файл domain-example.com.conf.

Итак, должно ли быть 2 файла для одного домена: файл main-domain.com.conf для порта: 80 и другой файл, который будет default-ssl.conf для порта: 443?

Другой мой вопрос касается синтаксиса и правильных имен для некоторых вещей. Во-первых, эта часть:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>

Делает VirtualHost _default_ нужно так называть, VirtualHost _default_? Или надо что-то заменить? В _default_ часть выглядит странно.

Другой мой вопрос касается правильного имени для использования в файле конфигурации: SSLCACertificateFile или SSLCertificateChainFile

Также следовал руководству хостинговой компании, в котором говорилось, что файл конфигурации для виртуального хоста должен иметь IP-адрес сервера, поэтому он выглядит так (обратите внимание на <VirtualHost 155.131.133.211:80> часть ) :

<VirtualHost 155.131.133.211:80>
        ServerAdmin admin@sitexample.com
        ServerName sitexample.com
        ServerAlias www.sitexample.com
        DocumentRoot /var/www/html/sitexample.com/

Это действительно способ сделать это? Потому что после того, как весь день пробовали разные вещи, в какой-то момент sitexample.com больше не указывал на правильный веб-сайт с правильным путем /var/www/html/sitexample.com/, а вместо этого указывал на страницу с "Index Of" в качестве заголовка это выглядело как главная страница IP-сервера.

Значение по умолчанию зависит от того, какую ОС / дистрибутив вы используете, но я бы рекомендовал разделить их для ясности - но для каждого сайта, а не для протокола (так что весь www.website1.com будет в одном файле, весь www.otherwebsite. net будет через секунду).

Вам не нужно указывать параметр VirtualHost, кроме случаев, когда ваш сайт по умолчанию НЕ совпадает для HTTP и HTTPS. В этом случае (с использованием распознавания заголовка хоста) вам понадобится другой VirtualHost для каждого DNS-имени (имен) сайта с соответствующим параметром «ServerName».

SSLCACertificateFile - это ваш сертификат, SSLCertificateChainFile - это пакет (сертификаты от вашего выдающего CA).

Наконец, вы, вероятно, НЕ хотите, потому что это сработает только тогда, когда кто-то перейдет к http://155.131.133.211 - если они используют DNS-имя для сайта, даже если это имя разрешается в тот же IP-адрес, вместо этого он отправит вас на сайт по умолчанию.