Не удается заставить сервер Visual SVN работать с самозаверяющим сертификатом
Я недавно обновил сервер VisualSVN до последней версии (в Windows), и теперь, когда я пытаюсь подключиться к нему из моего клиента командной строки Linux svn, я получаю эту ошибку:
svn: OPTIONS of 'https://server:port/svn': SSL negotiation failed: SSL error: Key usage violation in certificate has been detected.
Я попытался загрузить файл PEM crt и добавить его в ~/.subversion/servers (используя ssl-author-files), но это тоже не работает.
У кого-нибудь есть предложения?
3 ответа
Предложение Tekken666 не сработало для меня, так как я нахожусь в общей среде (поэтому я не могу удалить файлы в /usr/lib).
Тем не менее, я обошел мою проблему, просто перекомпилировав Subversion из последнего кода. Кажется, проблема в том, что svn на моем размещенном сервере использовал библиотеку SSL GNU вместо библиотеки неона SSL по умолчанию. Неон менее строг, чем GNU, когда дело доходит до проблем с сертификатами.
Вы можете восстановить сертификат, чтобы он был признан действительным GnuTLS. См. Статью КБ сервера VisualSVN "Нарушение использования ключа сертификата сервера VisualSVN в клиентах Subversion, созданных с использованием GnuTLS".
-1 Удалите текущий пакет libneon: sudo apt-get remove libneon27
-2 Загрузите последнюю версию пакета libneon с http://packages.debian.org/squeeze/libneon27 (внизу вы можете выбрать правильную версию для вашей архитектуры). Установите требуемую зависимость от libssl: sudo apt-get install libssl0.9.8
-3 Установить скачанный пакет libneon. Например, для 64-битной архитектуры: dpkg -i libneon27_0.29.3-3_amd64.deb
-4 Снова измените символические ссылки, как описано выше: sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27