获得SSL与OSX上的Apache / Passenger一起使用

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

到目前为止,我所遵循的步骤来自默认的apache osx安装:

  1. 安装乘客和乘客偏好窗格。
  2. 添加我的rails应用程序(这个工程)
  3. 创build我的ca.key,server.crt和server.key 在苹果网站上详细。

在这一点上,我需要开始编辑Apache的configuration,所以我补充说:

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

我想我会尝试编辑乘客pref窗格生成的configuration首先让一切工作,当我补充:

它开始看起来像这样

 <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仍然可以服务于默认页面。

任何帮助将不胜感激。

我认为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>