【问题标题】:Apache no longer server SSL after Yosemite upgrade优胜美地升级后 Apache 不再服务器 SSL
【发布时间】:2014-11-09 15:12:17
【问题描述】:

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

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

我已经阅读了有关 Yosemite 将 Apache 从 2.2 更新到 2.4 的问题,但我的 Web 服务器似乎无法修复由此引起的任何错误。无论如何,我确实尝试了解决方案 here,但我的 httpd.conf 文件不包含任何 OrderAllow 行(extra/ 中的任何文件也不包含)所以我无法尝试答案建议在那里。

【问题讨论】:

    标签: apache ssl osx-yosemite


    【解决方案1】:

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

    我相信您必须取消注释 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: 文件 '/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,如果一切正常,重新启动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-16
      • 2015-01-19
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 2015-03-05
      • 1970-01-01
      • 2015-03-13
      相关资源
      最近更新 更多