Debianサーバーを安定版からテスト版にアップグレードした後、svnクライアントはSubversionサーバーに接続できなくなります。
Svnクライアントはクライアント証明書を使用して接続する必要があり、SubversionサーバーはApacheでホストされています。 Subversionは1.6.17から1.7.13にアップグレードされました。 Apache2が2.2.22から2.4.6にアップグレードされました。
Svnクライアントは、更新時に次のエラーメッセージを受け取ります。
Updating '.':
svn: E175002: Unable to connect to a repository at URL 'https://myserver/svn/myproject/dev/trunk'
svn: E175002: OPTIONS of 'https://myserver/svn/myproject/dev/trunk': SSL handshake failed: SSL error: An unexpected TLS packet was received. (https://myserver)
Apacheサーバーでは、メッセージは1つだけ表示され、other_vhosts_access.logにあります。
myserver.localdomain:80 127.0.0.1 - - [06/Jan/2014:19:02:57 -0500] "\x16\x03" 400 0 "-" "-"
Subversion仮想ディレクトリの構成は次のとおりです。
<VirtualHost *:443>
ServerName myservername
SSLEngine On
SSLCertificateFile /etc/Apache2/ssl/myservercert.crt
SSLCertificateKeyFile /etc/Apache2/ssl/myservercert.key
SSLCACertificateFile /etc/Apache2/ssl/myserver-CA.crt
SSLVerifyClient require
SSLVerifyDepth 10
<Location /svn >
SSLRequireSSL
SSLRequire %{SSL_CLIENT_S_DN_C} eq "XX" and %{SSL_CLIENT_S_DN_ST} eq "XX" and %{SSL_CLIENT_S_DN_O} eq "XX" and %{SSL_CLIENT_S_DN_OU} eq "XX"
DAV svn
SVNParentPath /root/Subversion/root
Require valid-user
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /root/Subversion/.Apache-htpasswd
AuthzSVNAccessFile /root/Subversion/.Apache-auth
</Location>
</VirtualHost>
誰かがこの問題を解決するために正しい方向に私を向けることができますか?ありがとう。
Apacheを2.2から2.4にアップグレードする場合、sites-enabledの下のファイルリンクは、以前は特定のファイル拡張子を必要としなかった.confで終わる必要があります。
Sites-availableの下のサイト構成ファイル名に拡張子.confがない場合は、名前を変更してから、a2ensitefilenameを実行してsites-enabledに追加します。
たとえば、サイト構成ファイルの名前がMySiteの場合:
cd /etc/Apache2
rm sites-enabled/MySite
cd sites-available
mv MySite MySite.conf
a2ensite MySite
Apache2ctl configtest
Apache2ctl restart
したがって、上記の問題は、Apache2サービスの開始時にサイト構成が取得されなかったことが原因でした。
ApacheがHTTPSではなくポート443でHTTPに応答しているのではないかと強く疑っています。 TELNETでポート443に接続し、GET /
を実行すると、応答が返されると思われます。そうした場合、Apacheが単純な古いHTTPをリッスンしていることがわかります。
私はDebianの設定方法に精通していないので、どこから探し始めるかを教えてくれません。ポート443で暗号化されていないHTTPを取得している場合は、何らかの理由でサーバーがmod_ssl
をロードしていない可能性があります。