Я запускаю apache2 на сервере Debian 10.
У меня есть виртуальный хост для одного из поддоменов, которые у меня есть. У меня возникла проблема, когда, если виртуальный хост поддомена включен, переход к Broadcastre.cc
покажет содержимое smf.broadcastre.cc
(виртуальный хост).
Это не преднамеренно, и любая помощь в этом вопросе будет оценена по достоинству.
Моя конфигурация виртуального хоста
root@server1:~# cat /etc/apache2/sites-available/smf.conf
<Виртуальный хост *:80>
ServerAdmin <email скрыт>
имя_сервера smf.broadcastre.cc
Псевдоним сервера www.smf.broadcastre.cc
Корень документа /var/www/smf
DirectoryIndex index.php
<Каталог /var/www/smf>
Опционы Индексы FollowSymLinks MultiViews
Разрешить переопределить все
Порядок разрешить, запретить
разрешить от всех
</Каталог>
<Соответствие файлов \.php$>
# Для Apache версии 2.4.10 и выше используйте SetHandler для запуска PHP в качестве сервера процессов fastCGI.
SetHandler "прокси:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
Журнал ошибок ${APACHE_LOG_DIR}/smf.broadcastre.cc_error.log
CustomLog ${APACHE_LOG_DIR}/smf.broadcastre.cc_access.log вместе
</ виртуальный хост>
Конфиг для Broadcastre.cc
root@server1:~# cat /etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
<Виртуальный хост _default_:443>
Веб-мастер администратора сервера@localhost
Корень документа /var/www/html
# Доступные уровни логов: trace8, ..., trace1, debug, info, note, warn,
# ошибка, крит, оповещение, эмердж.
# Также можно настроить уровень логирования для конкретного
# модули, например.
# Информация об уровне журнала ssl: предупреждение
Журнал ошибок ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log вместе
# Для большинства конфигурационных файлов из conf-available/, которые
# включено или отключено на глобальном уровне, можно
# включить строку только для одного конкретного виртуального хоста. Например
# следующая строка включает конфигурацию CGI только для этого хоста
# после глобального отключения с помощью "a2disconf".
# Включить conf-available/serve-cgi-bin.conf
# Переключатель механизма SSL:
# Включить/отключить SSL для этого виртуального хоста.
SSLEngine включен
# Самоподписанный сертификат (snakeoil) можно создать, установив
# пакет ssl-сертификата. Видеть
# /usr/share/doc/apache2/README.Debian.gz для получения дополнительной информации.
# Если и ключ, и сертификат хранятся в одном файле, только
# Требуется директива SSLCertificateFile.
SSLCertificateFile /root/.acme.sh/broadcastre.cc/broadcastre.cc.cer
SSLCertificateKeyFile /root/.acme.sh/broadcastre.cc/broadcastre.cc.key
# Цепочка сертификатов сервера:
# Указываем SSLCertificateChainFile на файл, содержащий
# объединение закодированных PEM сертификатов CA, которые формируют
# цепочка сертификатов для сертификата сервера. Альтернативно
# указанный файл может быть таким же, как SSLCertificateFile
# когда сертификаты ЦС напрямую присоединяются к серверу
# сертификат для удобства.
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
# Центр сертификации (ЦС):
# Установите путь проверки сертификата ЦС, где найти ЦС
# сертификаты для аутентификации клиента или один
# огромный файл, содержащий их все (файл должен быть закодирован в PEM)
# Примечание: Внутри SSLCACertificatePath вам нужны хэш-символические ссылки
# чтобы указать на файлы сертификатов. Используйте предоставленный
# Makefile для обновления хеш-символических ссылок после изменений.
#SSLCACertificatePath /etc/ssl/certs/
#SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
# Списки отозванных сертификатов (CRL):
# Установите путь отзыва ЦС, где можно найти CRL ЦС для клиента
# аутентификация или, как вариант, один огромный файл, содержащий все
# из них (файл должен быть закодирован в PEM)
# Примечание: внутри SSLCARevocationPath вам нужны хэш-символические ссылки
# чтобы указать на файлы сертификатов. Используйте предоставленный
# Makefile для обновления хеш-символических ссылок после изменений.
#SSLCAREvocationPath /etc/apache2/ssl.crl/
#SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl
# Аутентификация клиента (тип):
# Тип и глубина проверки клиентского сертификата. Типы
# нет, необязательный, требуемый и необязательный_no_ca. Глубина
# число, указывающее, насколько глубоко проверять сертификат
# цепочка эмитента, прежде чем решить, что сертификат недействителен.
#SSLVerifyClient требует
#SSLVerifyDepth 10
# Опции механизма SSL:
# Установите различные параметры для механизма SSL.
# о FakeBasicAuth:
# Преобразование клиента X.509 в базовую авторизацию. Это означает, что
# для управления доступом можно использовать стандартные методы Auth/DBMAuth.
# имя пользователя - это "однострочная" версия сертификата X.509 клиента.
# Обратите внимание, что пароль от пользователя не получен. Каждая запись в пользователе
# файлу нужен этот пароль: `xxj31ZMTZzkVA'.
# о ЭкспортCertData:
# Это экспортирует две дополнительные переменные среды: SSL_CLIENT_CERT и
# SSL_SERVER_CERT. Они содержат закодированные PEM сертификаты
# сервер (существует всегда) и клиент (существует только тогда, когда клиент
# используется аутентификация). Это можно использовать для импорта сертификатов
# в CGI-скрипты.
# о StdEnvVars:
# Это экспортирует стандартные переменные среды `SSL_*', связанные с SSL/TLS.
# По умолчанию этот экспорт отключен из соображений производительности,
# потому что этап извлечения является дорогостоящей операцией и обычно
# бесполезно для обслуживания статического контента. Таким образом, обычно включают
# экспорт только для запросов CGI и SSI.
# o OptRenegotiate:
# Это позволяет оптимизировать обработку повторного согласования SSL-соединения, когда SSL
# директивы используются в контексте каталога.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Каталог /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Каталог>
# Настройки протокола SSL:
# Безопасное завершение работы по умолчанию, но все же совместимое со стандартом SSL/TLS
# подход заключается в том, что mod_ssl отправляет уведомление о закрытии, но не ждет
# уведомление о закрытии от клиента. Когда вам нужно другое отключение
# можно использовать одну из следующих переменных:
# o ssl-unclean-shutdown:
# Это приводит к нечистому завершению работы при закрытии соединения, т.е.
# Оповещение о закрытии SSL отправлено или разрешено к получению. Это нарушает
# является стандартом SSL/TLS, но необходим для некоторых браузеров с мертвым мозгом. Использовать
# это когда вы получаете ошибки ввода-вывода из-за стандартного подхода, где
# mod_ssl отправляет уведомление о закрытии.
# о ssl-точное отключение:
# Это вызывает точное завершение работы при закрытии соединения, т.е.
# Оповещение о закрытии SSL отправлено, и mod_ssl ожидает уведомления о закрытии
# оповещение клиента. Это на 100 % соответствует стандарту SSL/TLS, но в
# практика часто приводит к зависанию соединений с браузерами с мертвым мозгом. Использовать
# это только для браузеров, где вы знаете, что их реализация SSL
# работает корректно.
# Примечание. Большинство проблем с неработающими клиентами также связаны с протоколом HTTP.
# функция поддержания активности, поэтому обычно вы также хотите отключить
# поддерживать активность и для этих клиентов. Используйте для этого переменную «nokeepalive».
# Точно так же необходимо заставить некоторых клиентов использовать HTTP/1.0 для обходного пути.
# их неработающая реализация HTTP/1.1. Используйте переменные «downgrade-1.0» и
# "force-response-1.0" для этого.
# BrowserMatch "MSIE [2-6]" \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 force-response-1.0
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType текст/css A31536000
ExpiresByType text/x-component A31536000
Приложение ExpiresByType/x-javascript A31536000
Приложение ExpiresByType/javascript A31536000
ExpiresByType текст/javascript A31536000
ExpiresByType text/x-js A31536000
ExpiresByType text/html A3600
ExpiresByType text/richtext A3600
ExpiresByType текстовый/обычный A3600
ExpiresByType text/xsd A3600
ExpiresByType текст/xsl A3600
ExpiresByType текст/xml A3600
ExpiresByType видео/asf A31536000
ExpiresByType видео/avi A31536000
ExpiresByType image/bmp A31536000
Приложение ExpiresByType/java A31536000
ExpiresByType видео/divx A31536000
Приложение ExpiresByType/msword A31536000
ExpiresByType image/gif A31536000
Приложение ExpiresByType/x-gzip A31536000
ExpiresByType image/x-icon A31536000
ExpiresByType image/jpeg A31536000
ExpiresByType image/webp A31536000
Приложение ExpiresByType/json A31536000
ExpiresByType аудио/миди A31536000
ExpiresByType видео/quicktime A31536000
ExpiresByType audio/mpeg A31536000
ExpiresByType видео/mp4 A31536000
ExpiresByType видео/mpeg A31536000
ExpiresByType видео/webm A31536000
Приложение ExpiresByType/x-font-otf A31536000
ExpiresByType audio/ogg A31536000
Приложение ExpiresByType/pdf A31536000
ExpiresByType image/png A31536000
ExpiresByType audio/x-realaudio A31536000
ExpiresByType image/svg+xml A31536000
Приложение ExpiresByType/x-shockwave-flash A31536000
Приложение ExpiresByType/x-tar A31536000
ExpiresByType image/tiff A31536000
Приложение ExpiresByType/x-font-ttf A31536000
ExpiresByType аудио/wav A31536000
ExpiresByType аудио/wma A31536000
Приложение ExpiresByType/шрифт-woff A31536000
Приложение ExpiresByType/font-woff2 A31536000
Приложение ExpiresByType/zip A31536000
</ЕслиМодуль>
Псевдоним /mail/usr/share/roundcube
</ виртуальный хост>
</ЕслиМодуль>
# vim: синтаксис=apache ts=4 sw=4 sts=4 sr noet
Изменить: Открытие Broadcastre.cc
с портом 443 вместо 80 исправляет это. Я предполагаю, что это потому, что он слушает 443, а не 80 (спасибо слегка_toasted за указание на это)