【问题标题】:Getting SSL to work with Apache/Passenger on OSX让 SSL 在 OSX 上与 Apache/Passenger 一起工作
【发布时间】:2010-03-13 18:45:31
【问题描述】:

我在我的开发机器上使用 apache/passenger,但需要添加 SSL 支持(未通过控制面板公开的内容)。我以前在生产中做过这个,但由于某种原因,我似乎无法在 OSX 上运行。

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

  1. 安装乘客和乘客首选项窗格。
  2. 添加我的 rails 应用程序(可行)
  3. 按照on the apple website 的详细说明创建我的 ca.key、server.crt 和 server.key。

此时我需要开始编辑 apache 配置,所以我添加了:

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

当我添加时,我想我会先尝试编辑乘客偏好窗格生成的配置以使一切正常运行:

一开始是这样的

<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 macos ssl passenger


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      并通过删除 octothorp 取消注释。

      【讨论】:

        【解决方案3】:

        不用定义两个虚拟主机,只定义一个带有头部的:

        <VirtualHost *:443 *:80>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-13
          • 1970-01-01
          • 2012-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多