我在开发机器上使用apache / passenger,但需要添加SSL支持(不通过控制面板公开)。我在制作之前已经完成了这个,但由于某种原因,我似乎无法在OSX上使用它。
到目前为止,我所遵循的步骤来自默认的apache osx install:
此时我需要开始编辑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仍然可以为默认页面提供服务。
非常感谢任何帮助。
答案 0 :(得分:2)
我认为Apache不支持SSL的虚拟主机。您可能在某处有另一个SSL虚拟主机条目,而是使用它。删除它,它应该工作。
答案 1 :(得分:2)
Apache的OS X发行版包含一个用于启用SSL的示例配置文件:请参阅/etc/apache2/extra/httpd-ssl.conf
。只需确保配置符合您的需求,然后在/etc/apache2/httpd.conf
中找到以下行:
#Include /private/etc/apache2/extra/httpd-ssl.conf
通过删除octothorp取消注释。
答案 2 :(得分:2)
而不是定义两个虚拟主机,只需用标题定义一个:
<VirtualHost *:443 *:80>