Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка проверки SSL-сертификата сервера Subversion: и другие причины

Автор вопроса: Daniel WiddisОтветов: 3

У меня была система SVN, которая работала нормально, и после недавнего обновления внезапно перестала работать. Моя установка:

  • У меня есть репозиторий, размещенный на сервере Windows 2008 с использованием VisualSVN Server 2.7.4. Сервер предлагает мне возможность генерировать самозаверяющие сертификаты по желанию, вводя собственное имя хоста или другие данные по желанию.

  • Я использую Eclipse (Kepler) для java-кодирования как на размещенной машине, так и на своем собственном MacBookPro под управлением Mac OS X 10.9.1 (Mavericks). У меня есть надстройка subclipse для Eclipse, которая требует подрывной деятельности с помощью java HL.

  • Я установил macports и последние пакеты subversion/javahl, запрошенные subclipse. Интерфейс Eclipse/subversion, кажется, работает нормально, но есть ошибки subversion командной строки, с которыми Eclipse не справляется. Устранение ошибок командной строки является основной проблемой.

  • Ранее у меня были установлены следующие версии через macports, и все, казалось, работало нормально:

    subversion @1.8.5_1+universal
    subversion-javahlbindings @1.8.5_0+no_bdb+universal

  • В рамках установки/устранения неполадок, не связанных с чем-то, я обновил все свои macports, которые установили следующие новые версии:

    subversion @1.8.8_0+universal
    subversion-javahlbindings @1.8.8_0+no_bdb+universal

  • После обновления svn через eclipse на моем Mac не работает. Я могу заставить это через командную строку, временно приняв сертификат. Он по-прежнему отлично работает на сервере Windows 2008.

В первый раз после изменения сертификата я получаю возможность принять его навсегда, но после этого он терпит неудачу и возвращается ко второму "временному" диалогу.

$ svn update
Updating '.':
Error validating server certificate for 'https://192.168.100.59:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
 - The certificate hostname does not match.
Certificate information:
 - Hostname: 571458-tools1
 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT
 - Issuer:
 - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Error validating server certificate for 'https://192.168.100.59:443':
 - The certificate has an unknown error.
Certificate information:
 - Hostname: 571458-tools1
 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT
 - Issuer:
 - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC
(R)eject or accept (t)emporarily? t
(credentials dialogue)
At revision 46.
  • После этого будущие попытки по-прежнему приводят к ошибке и требованию временно принять:
$ svn update
Updating '.':
Error validating server certificate for 'https://192.168.100.59:443':
 - The certificate hostname does not match.
 - The certificate has an unknown error.
Certificate information:
 - Hostname: 571458-tools1
 - Valid: from Feb 28 23:57:35 2014 GMT until Feb 26 23:57:35 2024 GMT
 - Issuer:
 - Fingerprint: 55:3E:55:FD:4D:40:A4:1E:8A:1E:27:71:DD:D4:ED:8B:A3:9A:1D:EC
(R)eject or accept (t)emporarily? t
At revision 46.

Многочисленные веб-поиски, включая этот сайт и другие, указывали на файлы аутентификации в ~/.subversion как на потенциальную проблему, но все предложенные решения (удаление, изменение владельца и разрешений и т. д.) не помогли решить проблему.

Конкретные вопросы: 1. Я не могу понять, как вернуться к предыдущей версии Subversion (1.8.5) в macports, чтобы увидеть, была ли ошибка в версии 1.8.8, до которой я обновился. 2. Предполагая, что в версии 1.8.8 нет ошибок, могу ли я сделать что-нибудь еще, чтобы потенциально устранить эту проблему и обеспечить постоянное принятие моих сертификатов?

РЕДАКТИРОВАТЬ: - Мне удалось избавиться от ошибки "имя хоста", изменив имя хоста моего самозаверяющего сертификата на числовой IP-адрес. Однако все остальные симптомы остаются, в том числе загадочное "В сертификате есть неизвестная ошибка". - Я убежден (хотя комментарии говорят об обратном), что обновление 1.8.8 что-то сломало в Mac OS X, и очень заинтересован в откате версий для дальнейшего устранения неполадок. Но я полагаю, что это новый вопрос...

  • Я смог выяснить, как вернуться к Subversion 1.8.5 по этой ссылке: trac.macports. org/wiki/howto/InstallingOlderPort и возврат к версии 1.8.5 решил проблему. Daniel Widdis 01.03.2014
  • И последнее дополнение: по-видимому, была ошибка при использовании subversion 1.8.8 и serf 1.3.2 и более ранних версий. Обновление serf до 1.3.4 решило проблему, поэтому теперь я использую последнюю версию как subversion, так и serf. Daniel Widdis 04.03.2014

ssl-certificatesvn

Ответы

Ответ 1 · рейтинг 7 · initramfs

Как ни странно, буквально день назад была аналогичная проблема. В любом случае, я могу ошибаться, но видимый уровень безопасности для SVN в 1.8.8 выше, чем в предыдущих версиях. Какие сертификаты, которые вы заставили принимать svn, могут больше не быть "приемлемыми" по новым стандартам. Я был неправ, но это не имеет значения.

Если вы посмотрите на предоставленную вами ошибку, вы увидите:

Имя хоста сертификата не совпадает.

Это ошибка SSL, которую svn не будет игнорировать, она означает, что вы подключаетесь к другому имени хоста, чем то, что вы указали. Дело в том, что хотя https://192.168.100.59:443 может ссылаться на тот же URL-адрес, что и ваш сервер репозитория, например: https://foobar.com:443 рукопожатие SSL завершится ошибкой, поскольку имена хостов не совпадают.

Эта проблема сохраняется в любом случае, когда URL-адрес вашего репозитория не соответствует имени хоста, указанному в сертификате сервера SVN.

Я подразумеваю, что вы используете самозаверяющий сертификат с помощью инструмента генерации сертификатов VisualSVN. Чтобы решить эту проблему, повторно создайте новый сертификат и убедитесь, что имя хоста соответствует вашему реальному имени хоста. Это должно решить ваши проблемы.

Обратите внимание: вы все равно получите это первое диалоговое окно с предупреждением о том, что вы используете сертификат, который не проверен/действителен, но вы не должны получать это второе диалоговое окно. Кроме того, убедитесь, что и клиентская, и серверная версии SVN одинаковы, разные версии SVN вызывают большой хаос.

Изменить:

Извините, я прочитал ошибку задом наперед, имя хоста вашего сертификата, по-видимому, 571458-tools1, хотя должно быть 192.168.100.59, если вы хотите получить к нему доступ. Выполните те же действия по регенерации сертификата, что и выше, но используйте имя хоста 192.168.100.59 вместо 571458-tools1.

Обратите внимание, что это позволит соединениям SSL/TLS работать только при прямом использовании внутреннего IP-адреса.

Ответ 2 · рейтинг 1 · Daniel Widdis

Я смог выяснить, как вернуться к Subversion 1.8.5 по этой ссылке:

trac.macports.org/wiki/howto/Установка старого порта

Возврат к 1.8.5 решил проблему. Я продолжу дальнейшее устранение неполадок с 1.8.8 непосредственно с разработчиками Subversion.

Ответ 3 · рейтинг 1 · Kevin Smyth

The certificate has an unknown error может быть проблемой цепочки сертификатов. Я столкнулся с этим после обновления Windows SVN 1.8.3 до 1.8.7. Вы можете найти это, выполнив эту команду: echo | openssl s_client -connect host:443

e.g.

Certificate chain
 0 s:/[redacted]/
   i:/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
 1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

Ошибка здесь в том, что тема 1 не соответствует эмитенту 0. Исправить цепочку сертификатов на сервере.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы