我在 Windows Server 2003 R2 32 位(加上 PHP 5.4.5 和 OpenSSL 1.0.1c,但我认为这不重要)上运行(实际上是尝试运行)Apache 2.4.2,我得到了错误日志中的以下行:
[Sun Aug 05 11:52:39.546875 2012] [ssl:warn] [pid 5712:tid 348] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
尝试连接https://localhost/
得到 102 - 连接被拒绝错误。
令我困惑的SSLSessionCache
是配置:
SSLSessionCache "shmcb:C:/Program Files/Apache Software Foundation/Apache2.4/logs/ssl_scache(512000)"
它与我为 Apache 2.2.17 使用的配置文件的行完全相同(除了 /Apache2.2 而不是 2.4),它运行得很好。使用 mod_status,我没有得到关于“SSL/TLS 会话缓存状态”的信息,而我得到的是 Apache 2.2。
我觉得这两个httpd-ssl.conf 文件之间并没有太多的区别,主要是路径之间的区别,但是看起来都差不多。
80 端口上的虚拟服务器运行正常。
我错过了什么?
编辑:对于那些想知道的人,这不是机器无法解析ServerName
. Apache 2.2 没有问题,我什至用netstat /flushdns
.
罪魁祸首不在 http-ssl.conf 中,而是在 httpd.conf 中。
我怀疑当我看到服务器状态根本没有报告“SSL/TLS 会话缓存状态”部分,而不是一个空部分时。碰巧
Include
httpd.conf 中的指令指向一个旧的测试 .conf 文件而不是 httpd-ssl.conf。好吧,呃!这可能会在将来帮助像我这样的其他新手......
我也遇到了同样的问题,但现在已经解决了。
我尝试在命令提示符下运行命令“netsh winsock reset”并重新启动我的机器。
问题是……最近安装了 Skype,安装后 Apache 和 Skype 都在寻找相同的端口 80。即使您更改了 Skype 的端口号,它也无法正常工作……可能是 Windows 中某些缓存的原因。更改 Skype 的端口号并运行此命令后,它对我有用。
我尝试了上述所有解决方案,但在我的案例中没有任何效果。最后我意识到问题是由“shmcb”引起的,它基本上指的是 apache socache_shmcb 模块。这在我的 httpd.conf 中被禁用并启用它解决了这个问题。
因此,要解决此问题,请在您的 httpd.conf 中取消注释以下行:
我在类似问题上花费的时间比我希望的要多,所以这是我的修复案例。
在日志中收到此错误消息:
在摸索了 ssl.conf(实际上未启用)和其中提到的路径之后,结果发现
ssl.load
(作为符号链接)/etc/apache2/mods-enabled/
按预期进入,但匹配的 .conf 文件却没有。易于检查:修复非常简单。与其尝试手动启用,不如使用
a2enmod
. 因此,要使用它启用 SSL,只需:也可能是您的服务器名称和 ssl 证书不匹配。然后它在 apache/error-log 中看起来像:
server certificate does NOT include an ID which matches the server name
。在我的例子中,它产生了这个错误,因为 Windows 中有一些进程使用 ssl 的端口 443。尝试禁用非 Windows 服务。并从自动启动中删除。
我添加这个答案是因为这个问题已经有点老了,它花了我一个小时的时间,我几乎吓坏了。
甚至这篇文章解释的
restart
是SLES 15.1 的行为明显不同:stop
start
restart
不重新加载设置/etc/sysconfig/apache2
!确实不要使用
apachectl restart
. 这些现在是配置的步骤SSLSessionCache
:a2enflag SSL
apachectl stop
apachectl start
然后检查日志文件。