使用SYSTEM帐户在cygwin上运行svn:SSL握手失败:SSL错误代码-1/1/336032856

时间:2014-05-23 07:42:48

标签: svn ssl jenkins cygwin

我在Windows Server 2008 R2企业下遇到以下问题,通过cygwin运行Jenkins监控的以下代码:

svn co --trust-server-cert --non-interactive --username=xxx --password=xxxx https://xxx/testprojects C:/source/testprojects

这导致Jenkins日志中出现以下错误消息:

svn: E175002: Unable to connect to a repository at URL 'https://xxx/testprojects'
svn: E175002: OPTIONS of 'https://xxx/testprojects': SSL handshake failed: SSL error code -1/1/336032856 (https://xxx)

Jenkins正在使用SYSTEM帐户运行。 我试过del %APPDATA%/Subversion/auth,结果是一样的。同时删除--trust-server-cert没有任何更改。

预设:windows server 2008 RE2(windows 7),cygwin 1.7.9(0.237 / 5/3),Jenkins作为服务(此刻不知道如何查看版本) 复制步骤:

  1. 以管理员身份打开cmd
  2. 使用PsExec.exe -i -s -d CMD
  3. 获取系统帐户
  4. 在SYSTEM cmd中调用cygwin --login
  5. 尝试将结帐输入某个目录
  6. 观察SSL握手失败:SSL错误

1 个答案:

答案 0 :(得分:0)

尝试更改" xxx"在https://xxx/testprojects中从DNS到IP,反之亦然(参见https://stackoverflow.com/a/8351174/1996150)。

这为我解决了同样的错误(在不同的环境中,svn版本1.7.10)。

在我的情况下,问题只出现在svn中(浏览器和openssl打开了https网址,但是svn返回了错误),所以我认为这是svn问题和服务器证书识别的混合。

如果这不能解决问题,则可能是另一个问题,但您可以使用

测试SSL连接
openssl s_client -connect xxx:443 

注意:在我的情况下,我还尝试将当前服务器证书删除到~/.subversion/auth/svn.ssl.server但是没有工作......