这只发生在大提交(导致提交失败):
Revelant部分从Apache的虚拟主机configuration
<LimitExcept GET PROPFIND OPTIONS REPORT>
要求有效的用户
</ LimitExcept中>
Dav svn
SVNPath / home / svn /
提交结果:
传输文件数据.............................. svn:提交失败 (详情如下): svn:PUT的 '/!svn/wrk/48583f7d-0e01-410d-8941-33d2ba3574b4/WAP/.../htdocs/images/rt.gif': SSL协商失败:SSL错误:parsingtlsext(https:// ...)
我在这里find了它的参考: http : //code.google.com/p/support/issues/detail?id = 1395
指出OpenSSL应该用TLS扩展编译,但在我的情况下,它不会在开始时出错,只是在大的提交。
有任何想法吗? 谢谢
我没有遇到过这个问题,但是我花了一段时间的search,发现它可能已经在Apache 2.2.12或13中引入。build议降级到2.2.11可以修复它,以及设置SSLProtocol – ALL + SSLv2 + SSLv3在您的Apacheconfiguration。 这两个人似乎都没有确定性。 祝你好运! 希望你find一个解决scheme。
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2393204
UPDATE
在阅读关于这个问题的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:这使得可以确定是否在接收到服务器hello(OpenSSL中的几个地方巧妙地假设这个)之后立即发生了恢复,而不是稍后在握手中。
原来的post
我在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删除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)
这发生在几乎与我遇到“parsingtlsext”错误的同时。
这个问题是最合适的,因为在Apache httpd 2.2.12 – 2.2.14和OpenSSL 0.9.8f – 0.9.8l中使用了多个启用SSL的虚拟主机。
下面的补丁似乎为我解决了这个问题。