一些url的Apache证书无效

我们在Apache安装中遇到一个相当奇怪的问题。 这里是一个简短的总结:

目前我正在用https和服务器证书设置Apache。 这是相当容易的,可以直接使用,就像预期的那样。 这是此设置的configuration:

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-directive的页面都可以正常工作。

当请求与LocationMatch-directive相匹配的东西时,会要求我提供证书(因此SSLVerifyClient必需属性),并在浏览器中获取所有基于根/中间链的正确证书。 select一个证书并点击“确定”后,这是什么popup在Apache日志中:

[ssl:info] [pid 9530:tid 25] [client:43357] AH01998:连接closures到子86closures中止([Thu Oct 11 09:27:36.221876 2012] [ssl:debug] [pid 9530:tid 25 ] ssl_engine_io.c(1171):(70014)find文件结尾:[client 10.235.128.55:45846] AH02007:SSL握手被系统中断[提示:在浏览器中按下停止button?!]

这只是垃圾日志。 这里发生了什么? 我可以看到这个configuration在我的本地机器上工作,但是在我们的一台服务器上没有。 服务器之间没有configuration差异,只有很小的应用方面的变化。

我已经尝试了以下方法:1)删除CA证书检查(工程)2)为整个站点(工程)添加所需的CA证书3)添加“SSLVerifyClient可选”不起作用4)++

服务器/应用信息

本地:

-OpenSSL v.1.0.1x -Apache 2.4.3 -Ubuntu -mpm:event -everyconfiguration应该打开

(失败)服务器:

-OpenSSL 0.9.8e -Apache 2.4.2 -SunOS -mpm:worker -everyconfiguration应该打开

请让我知道如果需要更多的信息,我会立即提供。

总结:

– 运行apache 2.4 – 服务器证书工作得很好 – 某些/位置的客户端证书不起作用,失败并出错

PS:

它可能与OpenSSL版本以及与TLS / SSLv3相关的“重新协商”相关?

似乎有一个问题,为我们正在使用的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-后空闲换一个,同时,td4812609.html