Я какое-то время сталкивался с этим со стенами, поэтому я написал на stackoverflow, и меня указали здесь ...
Я пытаюсь настроить несколько IP-адресов на Snow Leopard, чтобы я мог работать с сертификатами SSL. Я использую XAMPP - я не знаю, проблема ли в этом, но я думаю, что столкнусь с теми же проблемами, учитывая, что встроенный apache отключен.
Итак, сначала я рассмотрел запуск IP-адресов при запуске. Я начал работать с новым StartupItem, который работает правильно, потому что я могу пропинговать IP-адрес:
ping 127.0.0.2
ping 127.0.0.1
И оба работают. Итак, теперь у меня есть IP-адреса, которые, как вы знаете, нестандартны для OSx.
Я редактировал /etc/hosts
файл, чтобы включить и новые сайты:
127.0.0.1 site1.local
127.0.0.2 site2.local
Я уже изменил httpd.conf на использование httpd-vhosts.conf, потому что у меня было несколько сайтов, работающих на одном IP-адресе.
Я отредактировал файл vhosts, чтобы сайт выглядел так:
<VirtualHost 127.0.0.1:80>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local
<Directory "/Users/jim/Documents/Projects/site1">
Order deny,allow
Deny from All
Allow from 127.0.0.1
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost 127.0.0.1:443>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local
SSLEngine On
SSLCertificateFile "/Applications/XAMPP/etc/ssl-certs/myssl.crt"
SSLCertificateKeyFile "/Applications/XAMPP/etc/ssl-certs/myssl.key"
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
<Directory "/Users/jim/Documents/Projects/site1">
Order deny,allow
Deny from All
Allow from 127.0.0.1
AllowOverride All
</Directory>
</VirtualHost>
В приведенном выше коде вы можете изменить 1 на 2, и это настройка для второго сайта. Они используют один и тот же сертификат, поэтому находятся на разных IP-адресах.
Я также включил информацию NameVirtualHost в начало файла:
NameVirtualHost 127.0.0.1:80
NameVirtualHost 127.0.0.2:80
NameVirtualHost 127.0.0.1:443
NameVirtualHost 127.0.0.2:443
Я могу пинговать site1.local и site2.local. Я могу использовать telnet ( telnet site2.local 80
) попасть в оба сайта. Но в Safari я могу добраться только до первого site1.local
- переход к site2.local
дает мне либо главную страницу localhost (которая включена в vhosts), либо дает мне доступ запрещен !.
Я знаю, что делать, любые предложения были бы потрясающими.
А как насчет директивы прослушивания? У вас должно быть Listen 127.0.0.1:443
и Listen 127.0.0.2:443
вместо только Listen *:443
.
У меня работает идентичная настройка, за исключением моего NameVirtualHost, где вместо:
NameVirtualHost 127.0.0.1:80
NameVirtualHost 127.0.0.2:80
NameVirtualHost 127.0.0.1:443
NameVirtualHost 127.0.0.2:443
У меня есть только:
NameVirtualHost *:80
И мое имя сервера в хосте HTTPS включает порт: 443, например.
<VirtualHost 127.0.0.1:443>
DocumentRoot "/Users/jim/Documents/Projects/site1/web"
ServerName site1.local:443
.........
Надеюсь это поможет!
Одна вещь, которую стоит попробовать: у вас может быть более одного виртуального хоста, использующего один и тот же сертификат на одном IP-адресе, если вы включите эту директиву:
ИмяVirtualHost 127.0.0.1:443
Видеть http://wiki.apache.org/httpd/NameBasedSSLVHosts для примера файла конфигурации.