通过Python脚本不受信任的SVN SSL证书

时间:2017-10-23 10:16:11

标签: python python-2.7 ssl svn

我现在有一个奇怪的情景。当我在构建服务器上发出svn info TXN REPO命令(与SVN服务器分开)时,它按预期工作并向控制台显示相关信息。

然而,当我使用Python编写脚本,特别是来自子进程模块的Popen时,它会向标准错误(控制台)输出消息svn: E230001: Server SSL certificate untrusted

我尝试过的事情:

在脚本调用中使用--non-interactive--trust-server-cert标志。

通过脚本在svn info电话中传递用户名/密码。

以上两个似乎没有生效,并且上述相同的错误是吐出来的。但是,从命令提示符手动运行相同的命令会成功,没有任何问题。我假设它可能与python打开一个新的会话到SVN服务器,并且该会话不是一个"信任"连接?但我无法确定。

我们的SVN服务器位于Windows机器上,版本为1.8.0

我们的构建服务器是运行Jenkins版本2.84的Windows机器。 Jenkins执行批处理脚本,启动Python脚本,执行上述任务。

命令:svn_session = Popen("svn info --non-interactive --trust-server-cert --no-auth-cache -r %s %s" % (TXN, REPOS), stdout=PIPE, stderr=PIPE, shell=True)

**编辑**

当我将python行从脚本复制并粘贴到同一服务器上的交互式python shell中时,该命令也按预期工作。所以问题是脚本是如何执行命令的,而不是命令本身或Python如何运行该命令。 **

有没有人遇到过这个?

1 个答案:

答案 0 :(得分:1)

如果有人在将来看这个。 Panda Pajama已经给出了详细的答案..

SVN command line in jenkins fails due to server certificate mismatch