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

Несколько сертификатов SSL, работающих в Mac OS X 10.6

Я какое-то время сталкивался с этим со стенами, поэтому я написал на 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 для примера файла конфигурации.