5

我正在使用 CruiseControl.net 进行持续集成。我使用 VisualSvn 服务器(使用 Windows 身份验证)为我的项目创建了一个存储库。两台服务器都托管在同一系统中(Os-Microsoft Windows Server 2003 sp2)。

当我使用 CruiseControl.net 强制构建项目时,“ Failed task(s): Svn: CheckForModifications ”显示为消息。当我检查构建报告时,它显示如下:

BUILD EXCEPTION 
Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: OPTIONS of 'https://system:8443/svn/folder/Source': **Server certificate verification failed: issuer is not trusted** (https://system:8443). Process command: C:\Program Files\VisualSVN Server\bin\svn.exe log **sameUrlAbove** -r "{2010-04-29T08:35:26Z}:{2010-04-29T09:04:02Z}" --verbose --xml --username ccnetadmin --password cruise --non-interactive --no-auth-cache
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request) 

我在 ccnet.config 中的 SourceControl 节点如下图所示:

<sourcecontrol type="svn">
  <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable>
  <trunkUrl>
    check out url
  </trunkUrl>
  <workingDirectory>
    C:\ProjectWorkingDirectories\folder\Source
  </workingDirectory>
  <username>
   ccnetadmin
  </username>
  <password>
     cruise
  </password>
</sourcecontrol>

任何人都可以建议如何避免这个错误?

4

6 回答 6

5

颠覆错误信息说

svn: OPTIONS of 'https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source': Server certificate verification failed: issuer is not trusted (https://sp-ci.sbsnetwork.local:8443).

这告诉我您的“svn”不信任您服务器的 https 证书。

您可以通过执行类似的操作来解决此问题

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source

作为用户运行 Cruisecontrol 然后接受证书。

(另一种选择是让 CruiseControl 将 --trust-server-cert 传递给 svn,但我不知道您需要哪个配置选项)

于 2010-04-29T12:03:58.540 回答
1

服务器证书验证失败:颁发者不受信任

通过 HTTP 连接或将 CA 证书添加到构建机器。

于 2010-04-29T12:02:56.413 回答
1

在这里查看我不久前遇到的类似(但略有不同)的问题。

基本上,您不能将服务作为普通的“SYSTEM”帐户运行,您需要指定和配置具有适当权限的本地用户,并将服务配置为以该用户身份运行。

然后以用户身份登录服务器,在命令行运行任意svn命令;
伯特建议:

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source

系统会提示您输入 SVN 用户名和密码,然后将其缓存在适当的位置。还应该提示您接受证书 - 您应该这样做。

现在该服务应该可以正常运行了。

于 2010-05-07T12:51:48.707 回答
0

我在使用 CruiseControl.net 时将参数传递给 svn的问题中解决了同样的问题

您基本上需要更改 ccnet.config 中的源代码控制块并使用将 --trust-server-cert 选项传递给 svn 的批处理文件

于 2012-10-11T20:17:16.227 回答
0

我试图在windows 服务器域中进行持续集成。域控制器服务器应该为 svn 服务器(安装在其中一个域中)颁发证书。然后将颁发的证书导入 svn 服务器。

该过程包括两个步骤:

1)创建从域控制器颁发证书的请求。

           For that follow the steps:
                 i) open visual svn server
                 ii) "right click" **visualSVN Server(Local)** and "select" 
                      **properties**
                 iii) "select" **change certificate** in **cetificates**
                 iv) "check" the **prepare certificate request** and "provide" the 
                      domain controller as server and do as asked.
                  v) "save" the request as **.req extension** and **finish** the 
                     process

2)提交.req文件到域控制器获取证书

           For that follow the steps:
                  i) run **cmd**
                  ii) run **certreq -submit -attrib "CertificateTemplate: WebServer" 
                        .req file with its path** 
                  iii) save the certificate with **.cer** extension.
                  iv) do **i,ii,iii** of the **step 1**  
                   v)  "check" the **Import Signed Certificate** and "browse" the 
                      **.cer file** and install it.                    
于 2010-05-11T12:46:27.410 回答
0

CruiseControl 服务默认在本地服务帐户下运行,因此请确保通过本地服务帐户接受证书或将“登录为”服务用户更改为接受证书的用户。

参考

于 2011-05-27T19:04:38.350 回答