使用SSL与OSX上的Apache/Passenger配合使用

问题描述:

我在我的开发机器上使用apache/passenger,但需要添加SSL支持(不通过控制面板公开的东西)。我在制作之前就已经完成了这个工作,但由于某种原因,我似乎无法在OSX上使用它。使用SSL与OSX上的Apache/Passenger配合使用

我已经按照到此为止是从默认的Apache安装OSX:

  1. 安装乘客和乘客偏好设置面板。
  2. 添加我的导轨应用程序(此作品)
  3. 创建我的ca.key,server.crt和server.key作为详细的on the apple website

在这一点上,我需要开始编辑了apache的configs,所以我说:

# Apache knows to listen on port 443 for ssl requests. 
Listen 443 
Listen 80 

我想我会尝试编辑乘客PREF窗格中首先生成的配置使一切工作正常,当我添加:

它开始看起来像这样

<VirtualHost *:80> 
    ServerName myapp.local 
    DocumentRoot "/Users/jonnii/programming/ruby/myapp/public" 
    RailsEnv development 
    <Directory "/Users/jonnii/programming/ruby/myapp/public"> 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

我再追加这一点:所有引用

<VirtualHost *:443> 
    ServerName myapp.local 
    DocumentRoot "/Users/jonnii/programming/ruby/myapp/public" 
    RailsEnv development 
    <directory "/Users/jonnii/programming/ruby/myapp/public"> 
    Order allow,deny 
    Allow from all 
    </directory> 

    # SSL Configuration 
    SSLEngine on 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP 
    SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars +StrictRequire 

    #Self Signed certificates 
    SSLCertificateFile /private/etc/apache2/ssl.key/server.crt 
    SSLCertificateKeyFile /private/etc/apache2/ssl.key/server.key 
    SSLCertificateChainFile /private/etc/apache2/ssl.key/ca.crt 

    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 

</VirtualHost> 

该文件存在(我翻了一番检查了),但现在当我重新启动我的Apache我甚至不能得到myapp.local。然而,当我点击共享首选项面板时,apache仍然可以为默认页面提供服务。

任何帮助将不胜感激。

+0

任何想法的人? – jonnii 2010-03-21 00:37:37

我认为Apache不支持SSL的虚拟主机。您可能在某处有另一个SSL虚拟主机条目,而是正在使用。删除它,它应该工作。

Apache的OS X发行版包含用于启用SSL的示例配置文件:请参阅/etc/apache2/extra/httpd-ssl.conf。只要确保配置适用于您的需求,然后找到下面的行/etc/apache2/httpd.conf

#Include /private/etc/apache2/extra/httpd-ssl.conf 

,并通过删除octothorp取消其注释。

而不是定义两个虚拟主机,只需定义一个与头:

<VirtualHost *:443 *:80>