通过Apache,Gentoo对SVN进行大型提交时出现“ SSL错误解析tlsext”


10

这仅在大型提交时发生(导致失败的提交):

Apache虚拟主机配置中的启示部分

   <LimitExcept获取选择选项报告>
      需要有效用户
   </ LimitExcept>
   Dav svn
   SVNPath / home / svn /

提交结果:

传输文件数据............. svn:提交失败
(详情如下):
svn:的PUT
'/!svn/wrk/48583f7d-0e01-410d-8941-33d2ba3574b4/WAP/.../htdocs/images/rt.gif':
SSL协商失败:SSL错误:解析tlsext(https:// ...)

我在这里找到了对它的引用:http : //code.google.com/p/support/issues/detail?id=1395

指出OpenSSL应该使用TLS扩展名进行编译,但就我而言,它不会在一开始就出错,只是在大型提交时。

有任何想法吗?谢谢


是否有针对此错误的Apache httpd bugtracker票证?
user28271'1

Answers:


7

我还没有遇到过这个问题,但是我花了一段时间浏览了一下,发现它可能是在Apache 2.2.12或13中引入的。建议降级到2.2.11可以修复它,以及设置SSLProtocol- Apache配置中的ALL + SSLv2 + SSLv3。似乎都没有定论。祝好运!希望您找到解决方案。

http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393204


添加SSLProtocol -ALL + SSLv2 + SSLv3也对我有用

出于价值考虑,我遇到了同样的问题,并且如上所述添加SSLProtocol -ALL + SSLv2 + SSLv3为我解决了此问题。
亚当·卡尔

我在尝试从Ruby 1.9.3连接时遇到了同样的问题。不管出于什么原因,Ruby 1.9.2都不是问题。使用客户端证书时,错误立即发生。将我的配置从更改为SSLProtocol all -SSLv2可以SSLProtocol ALL -SSLv2 -TLSv1解决此问题。
aNoble 2012年

1
请注意,自1996
Jared Beck

5

更新

阅读有关此问题的http-dev线程(存档在http://www.gossamer-threads.com/lists/apache/dev/375633)后,似乎此问题是由客户端OpenSSL库中的错误引起的有关如何处理SSL票证/ ID的信息,这说明了为什么错误不会立即发生而是需要几秒钟到几分钟的时间。该决议是在11月2日确定的,即OpenSSL 0.9.8l发布三天前。该线程未明确说明是否/何时将修补程序应用于OpenSSL,但我认为可以将其固定在0.9.8m中,我相信m-beta更改日志中的此项已涵盖了该问题:

*)修复了无状态会话恢复处理。如果在服务器名称处理期间更改了票证,则在发出和尝试对票证进行解密时,请使用initial_ctx。尝试无状态会话恢复时,请使用非零长度的会话ID:这使得可以确定在收到服务器问候后是否立即发生了恢复(OpenSSL中的多个地方巧妙地假定了这一点),而不是稍后进行握手。

原始帖子

我在Gentoo的Apache-2.2.14上遇到了类似的问题。供参考,这是我的USE标志:

[ebuild   R   ] dev-libs/openssl-0.9.8l-r2  USE="zlib -bindist -gmp -kerberos -sse2 -test" 4,082 kB
[ebuild   R   ] www-servers/apache-2.2.14-r1  USE="ssl -debug -doc -ldap (-selinux) -static -suexec -threads" APACHE2_MODULES="actions alias auth_basic auth_digest authn_dbd authn_default authn_file authz_default authz_groupfile authz_host authz_user autoindex dav dav_fs dav_lock dbd deflate dir env expires headers include info log_config logio mime mime_magic negotiation proxy proxy_balancer proxy_connect proxy_http rewrite setenvif status unique_id userdir -asis -authn_alias -authn_anon -authn_dbm -authz_dbm -authz_owner -cache -cern_meta -charset_lite -disk_cache -dumpio -ext_filter -file_cache -filter* -ident -imagemap -log_forensic -mem_cache -proxy_ajp -proxy_ftp -speling -substitute -usertrack* -version -vhost_alias" APACHE2_MPMS="prefork -event -itk -peruser -worker" 5,088 kB
[ebuild   R   ] net-misc/neon-0.29.0  USE="expat nls ssl zlib -doc -gnutls -kerberos -libproxy -pkcs11" LINGUAS="-cs -de -fr -ja -nn -pl -ru -tr -zh_CN" 859 kB
[ebuild   R   ] dev-util/subversion-1.6.6  USE="apache2 bash-completion dso nls perl python ruby webdav-neon -berkdb -ctypes-python -debug -doc -emacs -extras -gnome-keyring -java -sasl -test -vim-syntax -webdav-serf" 5,384 kB

这发生SSLProtocol的任意组合与TLSv1包含

如果我调整SSLProtocol为remove TLSv1,则会收到新错误:

svn: PUT of '/!svn/wrk/0b9f5a96-15aa-11df-ad6a-0f71b873281b/project/trunk/path/btn_Cancel.gif': SSL handshake failed: SSL error: bad decompression (https://svn.mudbugmedia.com)

这大约与我遇到“ parse tlsext”错误的同时发生。


将我的SVN客户端从1.6升级到1.7为我解决了“ parse tlsext”问题,支持@ gabe-martin-dempesy的建议:“此问题是由客户端OpenSSL库中的错误引起的”
Jared Beck

0

此问题最可能是由于在Apache httpd 2.2.12-2.2.14和OpenSSL 0.9.8f-0.9.8l中使用了多个启用SSL的虚拟主机。

以下补丁似乎为我解决了这个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.