2009-11-06 2 views
2

Я пытаюсь использовать Hudson (который использует SVNKit) для доступа к репозиторию Subversion, для которого требуется получить сертификат клиента. Я могу получить доступ к тому же репозиторию, используя тот же сертификат клиента через Eclipse (также используя SVNKit).Почему я получаю сообщение handshake_failure с сертификатом Java SSL?

Когда Хадсон пытается проверить хранилище, он терпит неудачу с:

org.tmatesoft.svn.core.SVNException: svn: Received fatal alert: handshake_failure 

Хадсон работает под Tomcat, поэтому я включил отладку Ssl в журнале Tomcat (-Djavax.net.debug=ssl).

В конце рукопожатия я вижу:

*** ServerHelloDone 
Executor #0 for master : executing eMASS integration #3, SEND SSLv3 ALERT: warning, description = no_certificate 

Я не уверен, что это суть проблемы или нет.

Это следует за списком компетентных органов. Я убедился, что корневой эмитент сервера cert импортирован в моем cacerts, а также промежуточном издателе. Я все еще получаю ту же проблему.

Любые идеи, на что смотреть?

log is on pastebin.

+0

Проблема была в том, что у Хадсона была ошибка в том, что он не читал сертификат клиента даже после того, как он вызвал его. Это было зафиксировано в Хадсоне 1.342. См. Принятый ответ. – CoverosGene

ответ

2

В плагине Subversion Хадсона было несколько ошибок, связанных с использованием сертификатов SSL и их паролей. Вот я сообщил, что они исправили: http://issues.hudson-ci.org/browse/HUDSON-5230. Итак, теперь он должен правильно сохранить сертификат, который вы загружаете.

Обновите последнюю версию Hudson (версия Hudson 1.342 или новее), а также последнюю версию плагина subversion (1.10, доступно по адресу https://hudson.dev.java.net/servlets/ProjectDocumentView?documentID=147307&showInfo=true). Чтобы установить этот плагин, загрузите файл subversion.hpi, затем в Hudson перейдите в Manage Hudson -> Manage Plugins -> Advanced и загрузите его. Затем вам нужно перезапустить Хадсон.

+0

Вот и все. Теперь это работает для меня. Тем временем я добавил свой сертификат в файл /var/lib/hudson/.subversion/servers. См. Https://wiki.svnkit.com/SVNKit_specific_system_properties и http://svnbook.red-bean.com/en/1.5/svn.advanced.confarea.html#svn.advanced.confarea.opts.servers – CoverosGene

-1

Я точно не знаю, но может быть, это помогает. Может быть, вам нужно добавить керамику в jvm, используя keystore

0

Алексей имел правильную идею.

Log:

SEND SSLv3 ALERT: warning, description = no_certificate 

Это обсуждалось in the Java Programming forum.

Возможно, ваше затмение и Хадсон начинаются с разных JRE (клиент JRE против JDK JRE?). У каждого JRE есть собственное хранилище ключей. Это может привести к путанице в настройке.

+0

Они находятся на разных системах, поэтому они определенно отличаются хранилищами ключей. На Eclipse, где я могу подключиться, я не добавил никаких сертификатов в cacert. В окне Hudson я добавил серверные сертификаты, выдающие полномочия, в файл cacert. – CoverosGene

+0

Являются ли эти разные версии JDK? Корневые сертификаты время от времени меняются. –

+0

Оба являются JDK 1.6.0_17 – CoverosGene

0

У меня была такая же проблема на моем сервере Ubuntu. Установка сертификатов не помогла. Решение заключалось в том, чтобы использовать Java по умолчанию (java-6-openjdk) для Sun Java (java-6-sun).