В настоящее время у меня определены следующие VirtualHosts.
NameVirtualHost *:80
Listen *:80
<IfModule mod_ssl.c>
Listen *:443
</IfModule>
<VirtualHost *:80>
--various directives for www--
</VirtualHost>
<VirtualHost *:443>
--same directives as *:80--
SSLEngine on
SSLCertificateFile /path/to/public.crt
SSLCertificateKeyFile /path/to/private.key
SSLCACertificateFile /path/to/intermediate.crt
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
</VirtualHost>
<VirtualHost 192.168.1.102:80>
--various directives for another subdomain--
</VirtualHost>
<VirtualHost 192.168.1.103:80>
--various directives for another subdomain--
</VirtualHost>
<VirtualHost 192.168.1.104:80>
--various directives for another subdomain--
</VirtualHost>
<VirtualHost 192.168.1.105:80>
--various directives for another subdomain--
</VirtualHost>
<VirtualHost 192.168.1.106:443>
--various directives for another subdomain--
SSLEngine on
SSLCertificateFile /path/self/signed/certificate.pem
--same ciphers and other settings as *:443--
</VirtualHost>
<VirtualHost 192.168.1.107:80>
--various directives for another subdomain--
</VirtualHost>
<VirtualHost 192.168.1.109:80>
--various directives for another subdomain--
</VirtualHost>
Прямо сейчас все работает, как ожидалось. Основной домен www *: 80 и его защищенное соединение на *: 443 работает с рейтингом B на SSLLabs.com
. Он выдает следующие ошибки:
Я поместил пользовательские параметры DH после моего открытого ключа, но параметры DH по-прежнему выдают ошибку. Я не уверен, как исправить ошибку Forward Secrecy.
После этого я попытался добавить новый VirtualHost, чтобы я мог переместить свои различные субдомены, которые теперь покрыты нашим новым сертификатом, в SSL.
Я добавил новый VirtualHost:
<VirtualHost 192.168.1.109:443>
--Copied all directives from 192.168.1.109:80--
--Copied all SSL settings from *:443--
</VirtualHost>
Конфигурация, кажется, проверяется при запуске configtest. Apache не выдает мне сообщений об ошибках, которые кажутся актуальными при перезапуске службы (всегда выдаются некоторые ошибки DNS, но это нормально, так как IP-адреса, определенные в VirtualHosts, являются IP-адресами DMZd, а не публичными IP-адресами). Однако ни один из моих сайтов не отвечает, и apache2 показывает, что он остановлен. Когда я удаляю новый VirtualHost, сервер возвращается обратно без проблем.
Что я делаю не так с моей конфигурацией? Кто-нибудь может указать мне правильное направление?
Проблемой были, по-видимому, ошибки ServerName все время. Они в порядке, пока существует только 1 хост на IP, но добавления второго IP, даже при том, что это находится на новом порте и поэтому сделало, чтобы новый VirtualHost назвал, не было достаточно, чтобы помешать Apache аварийно завершаться.
я добавил ServerName к каждому VirtualHost даже при том, что нам не были нужны они в прошлом и теперь новые установки VirtualHost без проблемы.
sudo apt-get install --reinstall grub-efi-amd64-signed
– NickKolok 25 December 2016 в 03:59