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

Проблемы с подключением TeamCity, SVN и SSL

В нашей сети есть сервер, на котором работает сервер Subversion Edge. Я настроил Edge для использования SSL на порту 8443. Мы успешно подключаемся к SVN через таких клиентов, как Tortoise SVN, как из сети, так и удаленно через общедоступный IP-адрес. SSL-сертификат, который использует Edge, - это только тот, который он создал сам, то есть самоподписанный.

В нашей сети установлен TeamCity, и он может без проблем подключаться к репозиторию Edge SVN.

У нас также есть установка TeamCity во внешнем расположении, однако во внешнем расположении TeamCity не подключается к SVN, он отвечает с ошибкой:

Мы знаем, что сеть во внешнем местоположении использует прокси, но мы изменили файл серверов, указав детали прокси, то есть:

[global] http-proxy-exceptions = localhost http-proxy-host = ourproxy http-proxy-port = 8080

До того, как мы изменили настройки прокси, когда мы пытались подключиться к репозиторию SVN через TeamCity, ошибка была:

jetbrains.buildServer.vcs.VcsRootVcsException: svn: E175002: соединение отклонено сервером svn: E175002: запрос OPTIONS завершился неудачно на '/ svn / TheWebsite

После того, как мы изменили настройки прокси, ошибка была:

jetbrains.buildServer.vcs.VcsRootVcsException: svn: E175002: оповещение о рукопожатии: unrecognized_name svn: E175002: Ошибка запроса OPTIONS на '/ svn / TheWebsite'

Прежде всего я подумал, что ошибка может указывать на что-то, связанное с авторизацией. Итак, я отключил SSL на нашем сервере SVN Edge Server, и внешний TeamCity смог без проблем подключиться через HTTP. Это заставляет меня думать, правильно или ошибочно, что это как-то связано с сертификатом SSL. Сертификат SSL на нашем сервере SVN Edge является самоподписанным и выдается svnedge.collab.net, что, конечно, не соответствует нашему внешнему URL-адресу.

Итак, мой вопрос: знает ли кто-нибудь по опыту, вызвана ли ошибка «оповещения о рукопожатии», потому что а) прокси удаляет учетные данные или б) teamcity жалуется на то, что общее имя в сертификате (svnedge.collab.net) не соответствует соответствовать URL-адресу нашего репо? Эта статья, http://www.webapper.com/blog/index.php/2007/02/09/troubleshooting-javaxnetsslsslhandshakeexception/, похоже, предполагает, что несоответствие общего имени вызовет эту ошибку.

Любая помощь или совет будут очень благодарны.

С уважением, dotdev

Я решил эту проблему после обновления Java в нашем экземпляре TeamCity, установив свойство jsse.enableSNIExtension на основе верхнего ответа, данного на https://stackoverflow.com/questions/7615645/ssl-handshake-alert-unrecognized-name-error-since-upgrade-to-java-1-7-0

Правильный способ сделать это будет зависеть от версии TC, которую вы используете, как описано на http://confluence.jetbrains.com/display/TCD8/Configuring+TeamCity+Server+Startup+Properties#ConfiguringTeamCityServerStartupProperties-ServerisRunViaShellScript

У меня была аналогичная проблема, и jsse.enableSNIExtension = false не решил ее. Проблема была намного проще:

мой пароль svn, несколько специальных символов, которые, как я полагаю, были неправильно истолкованы при просмотре. В любом случае, изменение пароля на один только с обычными буквами и цифрами решило проблему