小编典典

jenkins中的SVN命令行由于服务器证书不匹配而失败

jenkins

当我从Jenkins shell运行svn命令行时,出现此错误:

 D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up --trust-server-cert --non-interactive 
 Updating '.':
 svn: E175002: Unable to connect to a repository at URL 'https://xxx/stable'
 svn: E175002: OPTIONS of 'https://xxx/stable': Server certificate verification failed: certificate issued for a different hostname,  issuer is not trusted (https://xxx)

但是,当我从命令行CMD窗口运行相同命令时,就可以了:

 D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up
 Updating '.':
 At revision 1797.

要么

 D:\Jenkins\jobs\Merge Trunk to Stable\workspace\stable>svn up --trust-server-cert --non-interactive
 Updating '.':
 At revision 1797.

知道如何解决这个问题吗?


阅读 904

收藏
2020-07-25

共1个答案

小编典典

相当老的问题,但仍然很生动。

如您所知,问题在于接受的证书缓存(以及用户名/密码缓存)是按用户使用的,并且由于Jenkins以不同的用户身份运行(很可能是SYSTEM),因此它不了解您的常规用户缓存。

并非所有SVN客户端都允许您在此执行“ echo p”操作(这对我不起作用),并且--trust-server-cert显然在这种情况下也不起作用。

对我有用的是打开一个名为SYSTEM的控制台窗口,并在其中进行交互式acceptcertificate-login-password跳舞。

由于所有这些都已缓存,因此您只需执行一次,然后,所有svn up和类似的请求都将起作用。

2020-07-25