Yosemite升级后,Apache不再为SSL服务

时间:2014-11-09 15:12:18

标签: apache ssl osx-yosemite

升级到Yosemite后,我无法再使用我的网络服务器了。它被设置为接受端口443上的SSL连接,但现在netstat -a -n表示它甚至没有监听该端口。我查看/etc/apache2并注意到extra/已移至original/extra,所以我将其移回。 httpd.conf中还有original/的副本,但时间戳和大小未更改,差异显示它与我原来的httpd.conf相同。 /etc/apache2中唯一具有新时间戳的其他文件是users/,但该目录中的任何内容都没有更改。

ssl/中的所有证书文件仍具有正确的权限。我在/var/log/apache2/error_log中没有看到任何内容(除了正常的启动消息)。事实上,即使我尝试访问端口80上的Web服务器,我也无法在error_logaccess_log中获得任何内容,即使我在我尝试访问的每个页面上意外地获得403 Forbidden。 / p>

我已经阅读过Yosemite将Apache从2.2升级到2.4的问题,但是我的Web服务器似乎无法正常修复由此引起的任何错误。在任何情况下,我都尝试了解决方案here,但我的httpd.conf文件不包含任何OrderAllow行(extra /中也没有任何文件)所以我不能尝试那里建议的答案。

1 个答案:

答案 0 :(得分:5)

好的,这是一个古老的话题,但这是一个答案。

我相信你必须在httpd.conf中取消注释几行。

执行命令

sudo vi /etc/apache2/httpd.conf

取消注释以下行:

#LoadModule ssl_module libexec/apache2/mod_ssl.so

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

一个简单的技巧是使用VIM搜索配置文件,以从中找到与SSL相关的行并进行调试。

在VIM中,以下内容将查找ssl的所有实例...按n转到下一个找到的实例:

?ssl

进行更改后,请使用以下方法测试配置:

sudo apachectl configtest

如果一切顺利,请运行:

sudo apachectl restart

如果您收到以下错误:

SSLCertificateFile:file' /private/etc/apache2/server.crt'不存在或是空的

创建默认的自签名SSL证书:

cd /private/etc/apache2

openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key

询问您的公共名称时输入localhost。

然后运行configtest,如果一切正常,请重启。