каждому виртуальному хосту требуется определение журнала ошибок и общего журнала, без них используется журнал по умолчанию, также обратите внимание, что стоит создать виртуальный хост по умолчанию, который улавливает весь трафик, который не для одного из ваших доменов (люди, которые указывают свои DNS на вашем сайте). Это может иметь плохие последствия, так как это обманчивый контент.
итак, в каждом виртуальном хосте;
ErrorLog "logs/web1-error_log"
CustomLog "logs/web1-access_log" common
ErrorLog "logs/web2-error_log"
CustomLog "logs/web2-access_log" common
ОБНОВЛЕНИЕ:
не видел часть о том, что не регистрируется конкретный каталог, это может быть достигнуто путем установки переменной окружения.
Хорошо, я заметил, что в последнее время этот пост просматривается довольно часто, поэтому кажется, что многие люди сталкиваются с той же проблемой, что и я. Если это так, то это может вам помочь.
Я выполнил простой пошаговый -за -пошаговый учебник, чтобы создать сертификат SSL -для своего веб-сервера. Как и во многих учебниках, результатом урока, которому я следовал, был самоподписанный сертификат -с использованием OpenSSL. Да self -подписанный , вот в чем проблема. Браузер не может доверять серверу из-за его сертификата, подписанного им самим. Я бы тоже не стал...
Сертификат должен быть подписан внешним доверенным центром сертификации (ЦС ). Итак, я наткнулся на Let's Encrypt , который сделает всю работу за вас, его еще проще настроить, а лучше всего :он абсолютно бесплатный.
1 )Удалите старые файлы сертификатов ssl, которые вы создали с помощью OpenSSL
2 )Откройте резервные копии, чтобы получить клиент certbot в Debian. Вы должны знать, что это откроет дыру для недоработанного программного обеспечения! Устанавливайте пакеты только тогда, когда вы знаете, что делаете.
echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list
3 )Обновите систему Linux
sudo apt-get update
4 )Установить certbot
sudo apt-get install python-certbot-apache -t jessie-backports
5 )Настройте apache ServerName и ServerAlias
sudo nano /etc/apache2/sites-available/000-default.conf
6 )Редактировать файл конфигурации apache
<VirtualHost *:80>
...
ServerName example.com
ServerAlias www.example.com
...
</VirtualHost>
7 )Проверить правильность синтаксиса
sudo apache2ctl configtest
8 )Если файл конфигурации выглядит нормально, перезапустите сервер Apache
sudo systemctl restart apache2
9 )Настройте сертификат с помощью certbot и следуйте инструкциям на экране.
sudo certbot --apache
Все сертификаты Let's Encrypt действительны в течение 3 месяцев. Чтобы обновить, вы можете вручную запустить
sudo certbot renew
Или автоматизируйте эту службу как задание cron
sudo crontab -e
и введите следующую строку, чтобы активировать продление каждый понедельник в 2 :30:00.
...
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
Вы можете ознакомиться с более подробным руководством здесь:https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
Это не ошибки - это предупреждения. Вполне возможно запустить mod_ssl с сертификатом, который не соответствует определенным именам серверов, если у вас определен хост ssl по умолчанию, а общее имя в сертификате совпадает с именем хоста, используемым клиентами для подключения.
Последнее, похоже, неверно в вашем случае. Как говорит Джейкоб, вам нужно указать правильное имя хоста в качестве общего имени (или псевдонима) при создании CSR .
Чтобы узнать, какие имена в настоящее время указаны в сертификате:
openssl s_client -showcerts -connect ${HOSTNAME}:443
Если на машине установлено несколько сертификатов, обслуживаемых на одном IP-адресе, то:
openssl s_client -showcerts -connect ${HOSTIP}:443 -servername ${HOSTNAME}
(где $ {...} значения - это заполнители, которые следует заменить соответствующими значениями).
В моем случае я решил эту проблему, заменив в моем файле конфигурации apache ssl для каждого соответствующего домена:
ServerName mydomain.com
ServerAlias www.mydomain.com
по:
ServerName www.mydomain.com
ServerAlias mydomain.com
Поскольку мой сертификат предназначен для «www.mydomain.com», а не для «mydomain.com»
полный файл apache:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin noreply@mydomain.com
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /home/mydomain.com/public_html
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|ico|png)$ \ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ \no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
<Directory />
Options +FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/mydomain.com/public_html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Нам пришлось добавить ServerName и ServerAlias в файл ssl по умолчанию -, а не только в файл conf для конкретного домена.
Это избавило нас от надоедливой ошибки.
Я нашел решение, которое мне подходит SSL НА CENTOS 8
nano /etc/httpd/conf.d/ssl.conf
ssl.conf
SSLCertificateFile /etc/letsencrypt/live/radiolatina.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/radiolatina.ru/privkey.pem