2012-06-26 5 views
1

В настоящее время я столкнулся с проблемой настройки MAMP 2 для использования SSL с несколькими виртуальными хостами (он отлично работает с одним). В моем случае он будет предоставлять только SSL-соединение для первого vhost, указанного в файле https-ssl.conf.MAMP 2 Несколько виртуальных хостов с SSL

В моем файле HTTPD-vhosts.conf, у меня есть несколько настроек виртуальных доменов как:

<VirtualHost *:80> 
    DocumentRoot "/Users/me/sites/something/" 
    ServerName something.local 
</VirtualHost> 
<VirtualHost *:80> 
    DocumentRoot "/Users/me/sites/else/" 
    ServerName else.local 
</VirtualHost> 

В моем файле HTTPS-ssl.conf, у меня есть несколько настроек виртуальных доменов как:

<VirtualHost *:443> 
    DocumentRoot "/Users/me/sites/something" 
    ServerName something.local:443 
    ServerAdmin [email protected] 
    ErrorLog "/Applications/MAMP/Library/logs/error_log" 
    TransferLog "/Applications/MAMP/Library/logs/access_log" 

    SSLEngine on 

    # SSL Cipher Suite: 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 

    # Server Certificate: 
    SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt" 
    #SSLCertificateFile "/Applications/MAMP/conf/apache/server-dsa.crt" 

    # Server Private Key: 
    SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key" 
    #SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server-dsa.key" 

    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
     SSLOptions +StdEnvVars 
    </FilesMatch> 
    <Directory "/Applications/MAMP/Library/cgi-bin"> 
     SSLOptions +StdEnvVars 
    </Directory> 

    # SSL Protocol Adjustments: 
    BrowserMatch ".*MSIE.*" \ 
      nokeepalive ssl-unclean-shutdown \ 
      downgrade-1.0 force-response-1.0 

    # Per-Server Logging: 
    CustomLog "/Applications/MAMP/Library/logs/ssl_request_log" \ 
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
</VirtualHost> 
<VirtualHost *:443> 
    DocumentRoot "/Users/me/sites/else" 
    ServerName else.local:443 
    ServerAdmin [email protected] 
    ErrorLog "/Applications/MAMP/Library/logs/error_log" 
    TransferLog "/Applications/MAMP/Library/logs/access_log" 


    ........add'l config deleted...... 
</VirtualHost> 

Всегда работает тот первый vhost, указанный в https-ssl.conf, предоставляется поддержка SSL, но не указана после него (https: //something.local будет работать, но не https://else.local)

Любая помощь будет оценили!

ответ

5

У вас может быть только один хост HTTPS на каждый IP-адрес - это предел HTTPS. Попробуйте <VirtualHost ip.ad.dr.es:443> для разных IP-адресов, чтобы получить хост HTTPS для каждого.

+0

Ahh, Гоча. Есть ли какие-либо возможности для этого при разработке в локальной среде? Я немного оглянулся на то, как настроить несколько IP-адресов для localhost на OSX (10.6), но не смог найти никакой документации. – user1086746

+0

Я не парень OSX, но я думаю, что это системные настройки -> Nettwork -> Добавить интерфейс -> Ethernet ->, а затем статический IP-адрес –

+0

Спасибо, я посмотрю на это! – user1086746

1

Попробуйте либо на httpd-vhost.conf, если он включен или httpd.conf

NameVirtualHost *:80 
NameVirtualHost *:443 

Благодарности

0

Файл .conf в оригинальный вопрос был близко, но не совсем там ...

Чтобы Apache мог распознавать разные виртуальные хосты по SSL, вам необходимо использовать NameVirtualHost и выключите «Строгий SNI». По существу, вам нужно следующее в верхней части httpd-ssl.conf файла:

# Ensure that Apache listens on port 443 
Listen 443 

# Listen for virtual host requests on all IP addresses 
NameVirtualHost *:443 

# Go ahead and accept connections for these vhosts 
# from non-SNI clients 
SSLStrictSNIVHostCheck off 

, а затем убедитесь, что каждый из ваших ВХост узлов объявляются с помощью следующего тега:

<VirtualHost *:443> 

Примечание: браузер вы При использовании также необходимо поддерживать SNI.

Все это было взято из этой страницы в документации Apache: https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Смежные вопросы