fragen stichworte

SSL-Fehler bei Subversion nach dem Upgrade von Apache von 2.2 auf 2.4

Nach dem Upgrade eines Debian-Servers von Stable auf Testing können svn-Clients keine Verbindung mehr zum Subversion-Server herstellen.

Unsere svn-Clients müssen über Client-Zertifikate eine Verbindung herstellen, und der Subversion-Server wird unter Apache gehostet. Subversion wurde von 1.6.17 auf 1.7.13 aktualisiert. Apache2 wurde von 2.2.22 auf 2.4.6 aktualisiert.

Der svn-Client erhält beim Aktualisieren die folgende Fehlermeldung:

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)

Auf dem Apache-Server wird nur eine Nachricht angezeigt und es befindet sich in other_vhosts_access.log:

myserver.localdomain:80 127.0.0.1 - - [06/Jan/2014:19:02:57 -0500] "\x16\x03" 400 0 "-" "-"

Hier ist die Konfiguration des virtuellen Subversion-Verzeichnisses:

<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>

Kann mich jemand in die richtige Richtung weisen, um dieses Problem zu lösen? Vielen Dank.

antworten

Wenn Apache von 2.2 auf 2.4 aktualisiert wird, müssen Dateiverknüpfungen unter sites-enabled mit .conf enden, wo sie in der Vergangenheit keine bestimmte Dateierweiterung benötigten.

Wenn Ihr Site-Konfigurationsdateiname unter sites-available keine Erweiterung .conf hat, möchten Sie ihn möglicherweise umbenennen und dann Folgendes ausführen: a2ensite filename, um ihn zu sites-enabled hinzuzufügen.

Beispiel, wenn Ihre Site-Konfigurationsdatei MySite heißt:

cd/etc/apache2
rm sites-enabled/MySite
cd sites-available
mv MySite MySite.conf
a2ensite MySite
apache2ctl configtest
apache2ctl restart

Das obige Problem war also darauf zurückzuführen, dass meine Website-Konfiguration beim Start des Apache2-Dienstes nicht aufgerufen wurde.

Ich vermute stark, dass Apache HTTP an Port 443 und nicht an HTTPS antwortet. Verbinden Sie sich mit TELNET mit Port 443 und machen Sie ein GET/ und ich vermute, dass Sie eine Antwort bekommen werden. Wenn Sie dies tun, sagt Ihnen das, dass Apache auf einfaches HTTP wartet.

Ich bin nicht vertraut mit Debian-Konfigurations-Tools, daher fällt es mir schwer, Ihnen zu sagen, wo ich anfangen soll. Wenn Sie feststellen, dass Sie unverschlüsseltes HTTP an Port 443 erhalten, ist es wahrscheinlich, dass der Server mod_ssl aus irgendeinem Grund nicht lädt.