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

少し前に私が抱えていた同様の (しかし少し異なる) 問題については、こちらをご覧ください。

基本的に、通常の「SYSTEM」アカウントとしてサービスを実行することはできません。適切な権限を持つローカル ユーザーを指定して構成し、そのユーザーとして実行するようにサービスを構成する必要があります。

次に、ユーザーとしてサーバーにログインし、コマンド ラインで任意の svn コマンドを実行します。
バートは次のように提案しています。

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

SVN のユーザー名とパスワードの入力を求められるはずです。これらは適切な場所にキャッシュされます。また、証明書を受け入れるように求められるはずです。これを行う必要があります。

これで、サービスは問題なく実行されるはずです。

于 2010-05-07T12:51:48.707 に答える
1

サーバー証明書の検証に失敗しました: 発行者が信頼されていません

HTTP 経由で接続するか、CA 証明書をビルド マシンに追加します。

于 2010-04-29T12:02:56.413 に答える
0

ここで、 CruiseControl.net を使用するときに引数を svn に渡すでの質問で同じ問題を修正しました。

基本的に、ccnet.config のソース管理ブロックを変更し、 --trust-server-cert オプションを svn に渡すバッチ ファイルを使用する必要があります。

于 2012-10-11T20:17:16.227 に答える
0

CruiseControl サービスはデフォルトでローカル サービス アカウントで実行されるため、証明書がローカル サービス アカウントを介して受け入れられることを確認するか、「ログオン」サービス ユーザーを証明書を受け入れたユーザーに変更します。

参照

于 2011-05-27T19:04:38.350 に答える
0

Windows サーバー ドメインで継続的インテグレーションを実行しようとしていました。ドメイン コントローラサーバーは、svn サーバー (ドメインの 1 つにインストールされている) の証明書を発行する必要があります。次に、発行された証明書を svn サーバーにインポートします。

このプロセスには、次の 2 つの手順が含まれます。

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 に答える