Apache, Gentoo를 통한 SVN 커밋시 “SSL 오류 구문 분석 tlsext” 결과 : 파일 데이터 전송

이는 커밋이 큰 경우에만 발생합니다 (실패한 커밋 결과).

Apache의 가상 호스트 구성의 관련 섹션

   <제외 된 옵션 옵션 보고서 제외>
      유효한 사용자 필요
   </ 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 2.2.12 또는 13에서 도입되었을 수 있음을 발견했습니다. 2.2.11로 다운 그레이드하면 SSLProtocol 을 설정하는 것뿐만 아니라 수정 할 수 있습니다 Apache 구성의 ALL + SSLv2 + SSLv3 어느 쪽도 결정적인 것으로 보이지 않았다. 행운을 빕니다! 해결책을 찾으시기 바랍니다.

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


답변

최신 정보

http://www.gossamer-threads.com/lists/apache/dev/375633에 보관 된이 문제에 대한 http-dev 스레드를 읽은 후 클라이언트 측 OpenSSL 라이브러리의 버그로 인해이 문제가 발생한 것으로 보입니다. SSL 티켓 / ID 처리 방법과 관련하여 오류가 즉시 발생하지 않지만 몇 초에서 몇 분이 걸리는 이유를 설명합니다. 이 해결 방법은 OpenSSL 0.9.8l이 출시되기 3 일 전에 11 월 2 일에 결정되었습니다. 스레드가 수정 사항이 OpenSSL에 적용 된 경우 명시 적으로 언급하지는 않지만 0.9.8m에서 수정 될 것으로 예상되는 것으로 생각되며 m-beta changelog 의이 항목으로 덮여 있다고 생각합니다.

*) 상태 비 저장 세션 재개 처리로 수정되었습니다. 서버 이름 처리 중 티켓이 변경된 경우 티켓을 발행하고 암호 해독을 시도 할 때 initial_ctx를 사용하십시오. 상태 비 저장 세션 재개를 시도 할 때 길이가 0이 아닌 세션 ID를 사용하십시오. 그러면 핸드 셰이크에서 나중에 서버 hello (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

TLSv1포함 된 SSLProtocol의 모든 조합에서 발생합니다.

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)

이것은 “parse tlsext”오류가 발생하는 것과 거의 동시에 발생합니다.


답변

이 문제는 Apache httpd 2.2.12-2.2.14 및 OpenSSL 0.9.8f-0.9.8l에서 여러 SSL 지원 VirtualHost를 사용하기 때문에 가장 가능성이 높습니다.

다음 패치 는 문제를 해결하는 것으로 보입니다.