【问题标题】:OSX Local SSL not Respected?不尊重 OSX 本地 SSL?
【发布时间】:2011-06-10 13:57:38
【问题描述】:

我显然遗漏了一些东西,可能是一些明显的东西,但我只是没有看到它。我在 MBP 上配置了一个自签名证书(通过 Macports 运行 Apache)。这是*.local 的通配符证书,我已经为我正在处理的站点配置了一个命名虚拟主机,但是当我尝试通过 https 访问它时,PHP 的 $_SERVER 变量表明 SSL 访问不是认可/尊重。即使我正在访问https://mynamedhost.localPORT 密钥报告端口 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>

【问题讨论】:

    标签: cakephp ssl apache2 cakephp-1.3


    【解决方案1】:

    知道了。在 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 2017-11-29
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多