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

SSL в локальном субдомене и субдомене

у меня есть оба local.domain.com и lmarket.local.domain.com указывая на мой локальный хост из etc / hosts.

Проблема в том, что я использую XAMPP в Windows 7 и имею 2 SSL VirtualHosts в моей конфигурации apache, но независимо от того, к какому из них я обращаюсь, я попадаю в local.domain.com. С запросами без HTTPS все работает нормально, и vhosts в основном такие же.

Вот соответствующая часть моих vhosts:

<VirtualHost local.domain.com:443>
    DocumentRoot "C:/xampp/htdocs/local"
    ServerName local.domain.com
    ServerAdmin webmaster@localhost
    ErrorLog "logs/error.log"
    <IfModule log_config_module>
        CustomLog "logs/access.log" combined
    </IfModule>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <FilesMatch "\.(cgi|shtml|pl|asp|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "C:/xampp/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch ".*MSIE.*" 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 lmarket.local.domain.com:443>
    DocumentRoot "C:/xampp/htdocs/lmarket.local"
    ServerName lmarket.local.domain.com
    ServerAdmin webmaster@localhost
    ErrorLog "logs/error.log"
    <IfModule log_config_module>
        CustomLog "logs/access.log" combined
    </IfModule>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <FilesMatch "\.(cgi|shtml|pl|asp|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "C:/xampp/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    BrowserMatch ".*MSIE.*" 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>

Если я инвертирую эти блоки, произойдет обратное: local.domain.com идет в lmarket.local.domain.com. Любая помощь будет оценена.

Вы, вероятно, забыли сообщить apache, что 127.0.0.1:443 должен использоваться для виртуальные хосты на основе имен.

NameVirtualHost 127.0.0.1:443

Или даже лучше

NameVirtualHost *:443

Должен быть добавлен в вашу конфигурацию до VirtualHost разделы. Вы также должны обновить VirtualHost с адресом, который вы указали NameVirtualHost. Например. <VirtualHost *:443>.

Да, я нашел ответ ... не знаю, почему это так, но мне пришлось изменить:

<VirtualHost lmarket.local.domain.com:443>

к

<VirtualHost *:443>

и то же самое для 2-го vhost. Надеюсь, это кому-то поможет.