Локальный SSL OSX не соблюдается? - PullRequest
0 голосов
/ 10 июня 2011

Я явно что-то упускаю, возможно, что-то очевидное, но я просто не вижу этого.У меня есть самозаверяющий сертификат, настроенный на моем MBP (работает Apache через Macports).Это сертификат подстановочного знака для *.local, и я настроил именованный виртуальный хост для сайта, над которым я работаю, но когда я пытаюсь получить к нему доступ через https, переменные $_SERVER в PHP указывают, что доступ SSL не былпризнаются / уважал.Даже при том, что я получаю доступ к https://mynamedhost.local, ключу PORT, который сообщает о порте 80, а ключ HTTPS не существует.

Это сайт CakePHP, поэтому отсутствие ключа HTTPS предотвращает RequestHandler::isSSL() из отчетности верно.Мы будем благодарны за любые идеи.

Вот мой вывод настроек httpd:

$ httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
     default server www.example.com (/opt/local/apache2/conf/extra/httpd-ssl.conf:74)
     port 443 namevhost www.example.com (/opt/local/apache2/conf/extra/httpd-ssl.conf:74)
     port 443 namevhost mynamedhost.local (/Users/rob/Library/Application Support/MacPorts/apache/conf.d/mynamedhost.conf:17)
*:80                   is a NameVirtualHost
     default server localhost (/Users/rob/Dropbox/Application Support/apache/conf.d.osx/_localhost.conf:1)
     port 80 namevhost localhost (/Users/rob/Dropbox/Application Support/apache/conf.d.osx/_localhost.conf:1)
     port 80 namevhost mynamedhost.local (/Users/rob/Library/Application Support/MacPorts/apache/conf.d/mynamedhost.conf:1)
Syntax OK

Определение моего виртуального хоста namedhost выглядит следующим образом:

<VirtualHost *:80>
  ServerName   mynamedhost.local
  DocumentRoot /var/www/mynamedhost/app/webroot

  ErrorLog     /var/www/.logs/mynamedhost_error_log
  CustomLog    /var/www/.logs/mynamedhost_access_log common

  <Directory /var/www/mynamedhost/app/webroot>
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost *:443>
  ServerName    namedhost.local
  DocumentRoot  /var/www/mynamedhost/app/webroot

  ErrorLog     /var/www/.logs/mynamedhost_error_log
  CustomLog    /var/www/.logs/mynamedhost_access_log common

  <Directory /var/www/mynamedhost/app/webroot>
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>

1 Ответ

0 голосов
/ 10 июня 2011

Понял.В файле Macports extras/httpd-ssl.conf механизм SSL был включен и определены файлы сертификатов.Я думал, что это будет касаться пользовательских виртуальных хостов, но я был неправ.В общем, я решил добавить в определение виртуального хоста *:443 следующее:

SSLEngine on
SSLCertificateFile "/opt/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/opt/local/apache2/conf/server.key"

Теперь все, кажется, работает как положено.Я все еще думаю, что в моем конфиге происходит что-то интересное, но сейчас все будет хорошо.Для всех, кто играет дома, модифицированная конфигурация виртуального хоста выглядит следующим образом (конфигурация *:80, как показано выше, не изменилась):

<VirtualHost *:443>
  ServerName    mynamedhost.local
  DocumentRoot  /var/www/mynamedhost/app/webroot

  ErrorLog     /var/www/.logs/mynamedhost_error_log
  CustomLog    /var/www/.logs/mynamedhost_access_log common

  SSLEngine on
  SSLCertificateFile "/opt/local/apache2/conf/server.crt"
  SSLCertificateKeyFile "/opt/local/apache2/conf/server.key"

  <Directory /var/www/mynamedhost/app/webroot>
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
  </Directory>
</VirtualHost>
...