我有一台带有“Snow Leopard”v10.6.5的Mac OS,我正在使用Passenger Preference Pane v 1.3开发Ruby on Rails 3应用程序。
要继续开发我的应用程序,我需要 SSL 支持,但我有类似的problem。
我遵循的步骤来自默认的apache osx install:
...但是在第三步中我不得不停下来,原因是编辑/ private / etc / apache2 / httpd.conf 文件时出现了以下原因(有关详情,请访问Apple网站) :
1。
Port 80 should be changed to #Port 80.
我还没有找到“端口80”,但我认为这不是问题,因为即使它存在于代码中,也会被注释掉。
2。
You will need to add the following just below where the Port directive was:
< IfModule mod_ssl.c>
Listen 443
Listen 80
< /IfModule>
如果我添加这些代码行并重新启动apache2,我的应用程序将不再有效。
3。
[...] The two lines should now look like this:
LoadModule ssl_module libexec/httpd/libssl.so
AddModule mod_ssl.c
由于代码'AddModule mod_ssl.c'不存在(LoadModule已准备好使用),我尝试添加它并重启apache2,但我的应用程序不再有效。
4。
Now find the “ServerName” directive and make sure it has 127.0.0.1 for it’s entry.
ServerName 127.0.0.1
我不知道是否必须输入它,因为我使用Passenger。但是,在文件中我找到了代码行(已经注释)'#ServerName www.example.com:80'。
关于SSL证书的Passenger代码,我认为它必须与problem reported above相同。
我认为这是因为指南是很久以前写的。那么,如何在apache2中使用SSL?
为了清楚起见,我还提供了与乘客偏好窗格相关的代码......
... /私有的/ etc / apache2的/的的httpd.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.2
PassengerRuby /usr/local/bin/ruby
# Added by the Passenger preference pane
# Make sure to include the Passenger configuration (the LoadModule,
# PassengerRoot, and PassengerRuby directives) before this section.
<IfModule passenger_module>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName _default_
</VirtualHost>
Include /private/etc/apache2/passenger_pane_vhosts/*.conf
</IfModule>
... /私有的/ etc / apache2的/ passenger_pane_vhosts /的 subdomain.domain.com.vhost.conf
<VirtualHost *:443>
ServerName subdomain.domain.com
DocumentRoot "/Users/<my_user_name>/Sites/subdomain/public"
RackEnv development
<Directory "/Users/<my_user_name>/Sites/subdomain/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/server.crt
SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
SSLCertificateChainFile /private/etc/apache2/ssl/ca.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>
答案 0 :(得分:0)
我刚刚遇到同样的问题,这就是我为了让它发挥作用而做的。
按照相同的步骤生成密钥(此外还会提到删除密码。我必须这样做以便工作)。
接下来,我执行了以下操作以在Apache上启用SSL:
在Snow Leopard的“/private/etc/apache2/httpd.conf”文件中有一行:
# Include /private/etc/apache2/extra/httpd-manual.conf
我刚删除了#并保存了文件。
接下来编辑文件(/private/etc/apache2/extra/httpd-manual.conf)并确保
SSLCertificateFile
SSLCertificateKeyFile
指向您创建的正确密钥文件。
接下来,同一个文件中的条目(/private/etc/apache2/extra/httpd-manual.conf)开始:
<VirtualHost _default_:443>
我必须将该文件及其后的所有内容(或者您可以删除它)注释掉
</VirtualHost>
条目。该条目与我的网站冲突。
您看到的虚拟主机条目看起来是正确的,但为了完整性,我将在此处添加。
我刚修改了Passenger PrefsPane为我的网站创建的原始Vhost文件:
<VirtualHost *:443 *:80>
ServerName mysite.local
DocumentRoot "/Users/username/mysite/public"
RackEnv development
<Directory "/Users/username/mysite/public">
Order allow,deny
Allow from all
</Directory>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars +StrictRequire
SSLCertificateFile /etc/apache2/sslkey/server.crt
SSLCertificateKeyFile /etc/apache2/sslkey/server.key
SSLCertificateChainFile /etc/apache2/sslkey/ca.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>
接下来重启Apache,你应该好好去。 : - )