Назад | Перейти на главную страницу

Ошибка SSL с Subversion после обновления apache с 2.2 до 2.4

После обновления сервера 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 появляется только одно сообщение, и оно находится в 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 ссылки на файлы в разделах с поддержкой сайтов должны заканчиваться на .conf, тогда как в прошлом они не требовали определенного расширения файла.

Если имя файла конфигурации вашего сайта в разделе sites-available не имеет расширения .conf, вы можете переименовать его, а затем запустить: a2ensite filename, чтобы добавить его к сайтам с поддержкой.

Например, если файл конфигурации вашего сайта называется MySite:

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

Итак, проблема выше была связана с тем, что конфигурация моего сайта не была выбрана при запуске службы Apache2.

Я сильно подозреваю, что Apache отвечает на HTTP через порт 443, а не на HTTPS. Подключитесь к порту 443 с помощью TELNET и выполните GET / и я подозреваю, что вы получите ответ. Если вы это сделаете, это говорит вам, что Apache прослушивает обычный HTTP.

Я не знаком с приспособлениями конфигурации Debian, поэтому мне сложно сказать вам, с чего начать. Если вы обнаружите, что получаете незашифрованный HTTP на порт 443, вероятно, сервер не загружается. mod_ssl по какой-то причине.