web-dev-qa-db-ja.com

Apache、Gentooを介したSVNへの大規模なコミット時の「SSLエラー解析tlsext」

これは大規模なコミットでのみ発生します(コミットが失敗します)。

Apacheの仮想ホスト構成の魅力的なセクション

 <LimitExcept GET PROPFIND OPTIONS REPORT> 
 Require valid-user 
 </ LimitExcept> 
 Dav svn 
 SVNPath/home/svn/

コミット結果:

ファイルデータの送信中.............................. svn:コミットに失敗しました
(詳細は次のとおりです):
 svn:PUT of 
 '/!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拡張を使用してコンパイルする必要があると述べていますが、私の場合、大規模なコミットでのみ、最初はエラーになりません。

何か案は?ありがとう

10
Karolis T.

この問題は発生していませんが、しばらく調べてみると、Apache 2.2.12または13で導入された可能性があることがわかりました。2.2.11にダウングレードすると、設定だけでなく、修正される可能性がありますApache構成のSSLProtocol -ALL + SSLv2 + SSLv3。どちらも決定的なようには見えなかった。幸運を!あなたが解決策を見つけることを願っています。

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

7
Jeff Snider

[〜#〜]更新[〜#〜]

http://www.gossamer-threads.com/lists/Apache/dev/3756 にアーカイブされているこの問題に関するhttp-devスレッドを読んだ後、この問題はSSLチケット/ IDの処理方法に関するクライアント側のOpenSSLライブラリ。これは、エラーがすぐに発生しない理由を説明していますが、数秒から数分かかります。この解決策は、OpenSSL0.9.8lがリリースされる3日前の11月2日に決定されました。スレッドは、修正がOpenSSLに適用されたかどうか/いつ適用されたかを明示的に述べていませんが、0.9.8mで修正されると予想できるものだと思います。これは、m-beta変更ログのこのエントリでカバーされていると思います。

*)ステートレスセッション再開処理の修正。サーバー名の処理中にチケットが変更された場合に備えて、チケットを発行して復号化するときにinitial_ctxを使用します。ステートレスセッション再開を試行するときは、長さがゼロ以外のセッション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

これは、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)

これは、代わりに「parsetlsext」エラーが発生するのとほぼ同時に発生します。

5

この問題は、Apache httpd2.2.12-2.2.14およびOpenSSL0.9.8f-0.9.8lで複数のSSL対応VirtualHostを使用していることが原因である可能性が最も高いです。

次の パッチ は私にとって問題を解決しているようです。

0
redguy