【问题标题】:running svn on cygwin with SYSTEM account: SSL handshake failed: SSL error code -1/1/336032856使用 SYSTEM 帐户在 cygwin 上运行 svn:SSL 握手失败:SSL 错误代码 -1/1/336032856
【发布时间】:2014-05-23 07:42:48
【问题描述】:

我在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 as service(目前不知道如何检查版本) 复制步骤:

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

【问题讨论】:

    标签: svn ssl jenkins cygwin


    【解决方案1】:

    尝试将https://xxx/testprojects 中的“xxx”从 DNS 更改为 IP,反之亦然(请参阅https://stackoverflow.com/a/8351174/1996150)。

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

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

    如果这不能解决问题,则可能是另一个问题,但您可以测试 SSL 连接

    openssl s_client -connect xxx:443 
    

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

    【讨论】:

    • 对我来说是缺乏访问权限。在管理员将我添加到访问用户列表中后,错误消失了......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多