У меня есть сервер Apache 2.4, на котором я создал самозаверяющий сертификат для тестирования https с новым клиентским сайтом. Проблема, с которой я сталкиваюсь, заключается в том, что файл ssl.conf всегда загружается для моего сайта, когда я пытаюсь перейти на определенный виртуальный хост, который я настроил в отдельном файле vhosts.conf.
Может ли кто-нибудь помочь мне понять, почему желаемый виртуальный хост никогда не загружается, а загружается только по умолчанию?
Мое содержимое ssl.conf
Listen 443 https
SSL Global Context
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName localhost:443
ErrorLog logs/default_ssl_error_log
TransferLog logs/default_ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Содержание моего файла виртуального хоста
<VirtualHost demo.ffh.com:443>
ServerAdmin skittles@site.com
ServerName demo.ffh.com
DocumentRoot "/var/www/vhosts/ffh/public"
RewriteEngine On
# And THIS doesn't seem to be working at all!
LogLevel debug rewrite:trace8
<Directory "/var/www/vhosts/ffh/public/">
AllowOverride all
SSLOptions +StdEnvVars
#Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
SSLRequireSSL On
</Directory>
SSLEngine on
SSLCertificateKeyFile /etc/httpd/ssl/ssl.key/demo_ffh.key
SSLCertificateFile /etc/httpd/ssl/ssl.crt/demo_ffh.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog logs/ssl_ffh-access.log combined
ErrorLog logs/ssl_ffh-error.log
</VirtualHost>
Кто-нибудь понимает, почему сайт vhosts.conf игнорируется в пользу значения по умолчанию? И как мне это исправить? Я весь день бился головой об стену с этим.
ПРИМЕЧАНИЕ: «Вероятно, стоит сказать, что я пробовал использовать IP-адрес и *: 443 в vhost.conf вместо домена, но все равно не любил».
У меня была эта проблема, и четыре решения были
Это нормально, если у вас есть только один сертификат SSL для всей машины.
Это дает мне конфигурацию в SSL.conf и позволяет мне определять мои собственные записи VirtualHost для нескольких сертификатов SSL (при необходимости)
Это также работает для нескольких сертификатов SSL в моем файле vhosts.conf, но заставляет меня чувствовать себя грязным, потому что я меняю имена. Я думаю, можно было бы использовать синтаксис conf.modules.d-meet-sitesenabled из 010-vhosts.conf 020-ssl.conf и чувствовать себя немного менее грязным.
Эх ... может быть, для некоторых ... Хотя мне это не понравилось.
Позволяет сначала зашифровать остановленную обработку ssl.conf
Думаю, у меня обратная проблема. OP здесь хочет, чтобы файл Vhost обрабатывался вместо ssl.conf.
Мне нужно, чтобы ssl.conf обрабатывался до e.conf, как это было раньше. Я не понимаю, почему раньше ssl.conf был по умолчанию и никакие файлы в /etc/httpd/conf.d не мешали, даже если они были сначала в алфавитном порядке.
Я думаю, что решение для моего случая было бы переустановить, если кто-то не может предложить лучшее решение.
Изменить: я нашел лучшее решение, чем переустановка (по крайней мере, на данный момент) Позволяет сначала зашифровать остановленную обработку ssl.conf Но я думаю, что это хитрость и все еще ищу варианты получше.
РЕДАКТИРОВАТЬ: Решением моей проблемы было переименование em-le-ssl.conf
файл, а не em.conf
к чему-то после ssl.conf по алфавиту. Чтобы решить проблему здесь, спрашивающему придется переименовать свой файл vHost-le-ssl.conf во что-то до ssl.conf.
Хорошо ... Думаю, я исправил. О.о
Я не уверен, что именно заставило эту работу работать, но последние пару вещей, которые я сделал, были;
Ну ладно ... может быть, урок усвоен?