服务器/应用程序信息

服务器/应用程序信息

我们在安装 Apache 时遇到了一个相当奇怪的问题。下面是简短的摘要:

目前,我正在使用 https 和服务器证书设置 Apache。这相当简单,开箱即用 - 正如预期的那样。这是此设置的配置:

Listen 443

SSLEngine on

SSLCertificateFile "/progs/apache/ssl/example-site.no.pem"
SSLCertificateKeyFile "/progs/apache/ssl/example-site.no.key"

SSLCACertificateFile "/progs/apache/ssl/ca/example_root.pem"
SSLCADNRequestFile  "/progs/apache/ssl/ca/example_intermediate.pem"

SSLVerifyClient none
SSLVerifyDepth 3

SSLOptions +StdEnvVars +ExportCertData

RequestHeader set ssl-ClientCert-Subject-CN "%{SSL_CLIENT_S_DN}s"

RewriteEngine On
ProxyPreserveHost On
ProxyRequests On
SSLProxyEngine On

...

<LocationMatch /secureStuff/$>
    SSLVerifyClient require
    Order deny,allow
    Allow from All
</LocationMatch>

...

<Proxy balancer://exBalancer>
    Header add Set-Cookie "EX_ROUTE=EB.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
    BalancerMember http://10.0.0.1:7200 route=ee1 retry=300 flushpackets=off keepalive=on
    BalancerMember http://10.0.0.2:7200 route=ee2 retry=300 flushpackets=off keepalive=on status=+H
    ProxySet stickysession=EX_ROUTE scolonpathdelim=Off timeout=10 nofailover=off failonstatus=505 maxattempts=1 lbmethod=bybusyness
    Order deny,allow
    Allow from all
</Proxy>

RewriteCond %{REQUEST_URI} !^/index.html [NC]
RewriteRule ^/(.*)$ balancer://exBalancer/$1 [P,NC]

ProxyPassReverse / balancer://exBalancer/

Header edit Set-Cookie "(.*)" "$1;HttpsOnly"

...

因此 - 对于不属于 LocationMatch 指令的所有页面,一切运行正常且符合预期。

当请求与 LocationMatch 指令匹配的内容时,系统会要求我提供证书(因此 SSLVerifyClient 需要属性) - 并根据根/中间链在我的浏览器中获取所有正确的证书。选择证书并单击“确定”后,apache 日志中会弹出以下内容:

[ssl:info] [pid 9530:tid 25] [客户端:43357] AH01998:与子进程 86 的连接已关闭,并导致中止关闭([2012 年 10 月 11 日星期四 09:27:36.221876] [ssl:debug] [pid 9530:tid 25] ssl_engine_io.c(1171):(70014)找到文件结束:[客户端 10.235.128.55:45846] AH02007:SSL 握手被系统中断[提示:浏览器中按下了停止按钮?!]

这只会发送大量日志。这是怎么回事?我可以看到此配置在我的本地机器上运行正常,但在我们的某台服务器上却无法运行。服务器之间没有配置差异,只有应用程序方面的微小变化。

我尝试了以下操作:1)删除 CA 证书检查(有效)2)为整个网站添加所需的 CA 证书(有效)3)添加“SSLVerifyClient 可选”不起作用 4)++

服务器/应用程序信息

当地的:

-OpenSSL v.1.0.1x -Apache 2.4.3 -Ubuntu -mpm:事件 - 每个配置都应打开

(失败)服务器:

-OpenSSL 0.9.8e -Apache 2.4.2 -SunOS -mpm: worker -每个配置都应打开

如果需要更多信息,请告诉我,我会立即提供。

简要总结:

- 运行 apache 2.4 - 服务器证书工作正常 - 某些 /Locations 的客户端证书不起作用,失败并出现错误

附言:

这可能与 OpenSSL 版本以及与 TLS/SSLv3 相关的“重新协商”内容有关吗?

答案1

看起来我们使用的针对 Sun OS 编译的 apache 版本有问题。解释如下:-http://svn.apache.org/viewvc?view=revision&revision=1373439

除此之外,我们刚刚升级到 openssl v1.0.1c,修复了其他一些问题。

总结一下:如果您使用 Sun OS 和 Apache 2.4.0、2.4.1 或 2.4.2,那么您必须升级到版本 2.4.3,因为 SSLCaching 的问题已在那里得到解决。

资源:

http://svn.apache.org/viewvc?view=revision&revision=1373439

http://apache-http-server.18135.n6.nabble.com/DO-NOT-REPLY-Bug-53040-New-apache-2-4-1-Solaris-10-ssl-virtual-hosts-dies-after-idle-for-a-while-td4812609.html

相关内容