对使用 SSL 支持配置 Apache 感到茫然和困惑

Posted

技术标签:

【中文标题】对使用 SSL 支持配置 Apache 感到茫然和困惑【英文标题】:Dazed and confused about configuring Apache with SSL support 【发布时间】:2010-10-16 03:39:56 【问题描述】:

我花了几个小时尝试将我的 Apache 服务器配置为使用没有公共 IP 的 SSL,只有 localhost。我已经创建了证书,我认为(这对我来说就像是关于黑魔法的速成课程),当我尝试 tro 访问 https://localhost 时,浏览器会在状态行上显示“已连接到 localhost...”但只是永远加载。这是来自error_log的sn-p:

[Fri Mar 27 22:03:39 2009] [info] Loading certificate & private key of SSL-aware server
[Fri Mar 27 22:03:39 2009] [info] Configuring server for SSL protocol
[Fri Mar 27 22:03:39 2009] [info] Loading certificate & private key of SSL-aware server
[Fri Mar 27 22:03:40 2009] [info] Configuring server for SSL protocol

那里似乎一切正常,但与此同时,ssl_engine_log...

[Fri Mar 27 22:03:39 2009] [info] Init: Initializing OpenSSL library
[Fri Mar 27 22:03:39 2009] [info] Init: Seeding PRNG with 136 bytes of entropy
[Fri Mar 27 22:03:39 2009] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Mar 27 22:03:39 2009] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Mar 27 22:03:39 2009] [info] Init: Initializing (virtual) servers for SSL
[Fri Mar 27 22:03:39 2009] [info] mod_ssl/2.0.61 compiled against Server: Apache/2.0.61, Library: OpenSSL/0.9.7i
[Fri Mar 27 22:03:39 2009] [warn] module php5_module is already loaded, skipping
[Fri Mar 27 22:03:39 2009] [info] Init: Initializing OpenSSL library
[Fri Mar 27 22:03:39 2009] [info] Init: Seeding PRNG with 136 bytes of entropy[Fri Mar 27 22:03:39 2009] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Mar 27 22:03:40 2009] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Mar 27 22:03:40 2009] [info] Init: Initializing (virtual) servers for SSL
[Fri Mar 27 22:03:40 2009] [info] mod_ssl/2.0.61 compiled against Server: Apache/2.0.61, Library: OpenSSL/0.9.7i
[Fri Mar 27 22:03:40 2009] [notice] Digest: generating secret for digest authentication ...
[Fri Mar 27 22:03:40 2009] [notice] Digest: done
[Fri Mar 27 22:03:40 2009] [notice] Apache/2.0.61 (Unix) mod_ssl/2.0.61 OpenSSL/0.9.7l DAV/2 PHP/5.2.5 configured -- resuming normal operations
[Fri Mar 27 22:03:40 2009] [info] Server built: Jan 17 2008 17:33:42
[Fri Mar 27 22:03:40 2009] [emerg] (13)Permission denied: apr_proc_mutex_lock failed. Attempting to shutdown process gracefully.
[Fri Mar 27 22:03:40 2009] [emerg] (13)Permission denied: apr_proc_mutex_lock failed. Attempting to shutdown process gracefully.

...更多类似于最后两行,直到我最终停止服务器...

[Fri Mar 27 22:03:43 2009] [info] removed PID file /usr/local/apache2/logs/httpd.pid (pid=8786)
[Fri Mar 27 22:03:43 2009] [notice] caught SIGTERM, shutting down

对此permission deniedapr_proc_mutex_lock 的一些谷歌搜索并没有产生任何有用的信息。只有一些与 MPM 和 perchild 选项相关的结果,但由于它们很旧(2002 年和 2003 年)而且我在阅读它们后真的不能得出任何结论,我问你是否有办法克服这个问题。好吧,首先:实际上是什么问题?模块之间是否存在某种不兼容?我是否必须重新编译一些东西(求求主,不要再编译了,不要)?

提前致谢。

【问题讨论】:

投票结束,因为这与编程无关,可能更适合 Apache 论坛。 问题也很弱:例如,标题试图变得可爱而不是信息丰富。 不。没有一个很好的地方可以问这些问题,坦率地说,如果这不属于网站的主题,则需要扩大主题以包含它。也就是说,如果不知道配置和操作系统,就很难回答。 【参考方案1】:

庆幸你没有使用 apache 1.3——让 SSL 在上面运行要困难得多!

mod_ssl 需要几个文件的写权限才能工作。查看this setting 并确保 apache 具有对该文件所在目录的写入权限。例如,如果说(例如):

SSLMutex file:/var/run/apache/ssl.mutex

您需要验证 apache 是否可以写入 /var/run/apache

几乎所有这些类型的错误通常都是文件系统上的某种权限错误。

【讨论】:

好吧,非常感谢,伙计。我的问题实际上并不在于目录权限,但您的链接最有帮助!我花了更多时间阅读指令描述,添加 AcceptMutex 后,我能够连接。我不是想听起来很可爱,只是说感谢您的帮助。

以上是关于对使用 SSL 支持配置 Apache 感到茫然和困惑的主要内容,如果未能解决你的问题,请参考以下文章

apache环境下配置服务器支持https

在 tomcat 和 apache http 服务器之间配置 SSL

如何在apache上安装SSL证书

centos7 apache配置ssl支持tlsv1.0 1.1 1.2

SSL证书格式详解

让ubuntu使用apache2支持ssl