2012-08-14 24 views
11

に失敗した私は、このエラーを取得するシェル: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ウィンドウから同じことを実行すると、それOKです:

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. 

任意のアイデアどのようにこれを解決するために?

+0

そのサーバーのサーバーの指紋をどこかに追加する必要がありますか? – fduff

+0

私が知っているわけではありません。私は実際に質問を理解していない...私はサーバー証明書の名前が一致していない知っている。以前は問題なかった –

+0

私はTortoise/Network/Subversionサーバファイルのようなものを気にしていました。そこに欠けている設定があるかもしれませんが、それはちょうど推測です。 – fduff

答えて

15

かなり古い質問ですが、まだかなり生きています。

ご存じのように、受け入れた証明書キャッシュ(ユーザー名とパスワードのキャッシュと同様)はユーザーごとであり、Jenkinsは異なるユーザー(おそらくSYSTEM)として実行されているため、通常のユーザーキャッシュの

すべてのSVNクライアントで「エコーp」を実行することはできません(私にとってはうまくいきませんでした)。--trust-server-certは明らかにこのケースでは機能しません。

私のために働いたのはopen a console window as SYSTEMでした。そこに対話型のacceptcertificate-login-passwordダンスを行いました。

これはすべてキャッシュされているため、この操作を1回だけ行う必要があります。それ以降はすべてsvn upなどのリクエストが機能します。

+1

plusone - 3年後、まだ問題があり、あなたの答えが私を助けました!どうも。 –

6

私はついにこの問題を解決できました!私がしたことは、単にJenkinsのスクリプトに入れられています。

echo p | svn up --username <usr> --password <pwrd> 

これが解決しました。エコーはマニュアル入力をエミュレートして証明書を永久に受け入れるためです。

根本原因は、ジェンキンスシェルスクリプトは、Windowsサービスのユーザーの下で実行するという事実である - これ

0

おそらく、証明書が異なるに発行される(C:\Windows\System32\config\systemprofile\AppData\Roaming\Subversion代わり%USERPROFILE%\AppData\Roaming\Subversion\の中で)ユーザープロファイルキャッシュのための別の場所を使用していますhostname(xxxではなく、xxx.yourcompany.comのようなもの)。 yesの場合は、このホスト名でクリーンチェックアウトを行います。

0

echo p | svn commands

はジェンキンスWindowsバッチコマンドプロンプトで素晴らしい仕事しました。これを一度行うと、Jenkinsユーザーの証明書が[ビルド]ボックスに永久に受け入れられます。

0

スレーブのJenkinsからSvnコマンドを実行するのが難しかったです。あなたがやるのWindows上にある場合http://www.microhowto.info/howto/configure_subversion_to_trust_a_given_ssl_certificate.html

cd %APPDATA%\Subversion\ 

が続いて除去することにより、そのディレクトリ内のserverファイルを編集

では、UNIX上にある場合、このリンクをたどっ:私は次のことをやりました#符号をssl-authority-files要素から削除し、SSL証明書ファイルを格納した場所へのパスを更新します。

資格情報を保存したい場合は、以下も変更してください。

store-passwords = yes 
store-ssl-client-cert-pp = yes 

それが完了したら、あなたも動作しませんでした、Add the Cert to the Trusted Root CA Store

0

これは恐ろしい答えのように見えるかもしれませんが、以下ではなく、他のものを排出した後、Windowsマシンに証明書を追加する必要があります他の問題のため私のために、SSLを使用しないようにSVNサーバーを変更するルートを選択します。

これはオプションです。このサーバーをセットアップしただけで、完全に内部ネットワークになっていますが、問題は完全に解消されました。そして、私は他の選択肢と時間を使い果たしました。

私はまた、誰かがそれがオプションであることに気づいていないことを示唆しています。 SSLを使用すると、サーバーの公開に関係なく、私はより良い気分になります。

0

JenkinsとWindow 7で同じ問題がありました。 サービスに入り、Jenkinsを選択してログオンし、管理者の資格情報を入力してjenkinsサービスを再起動して解決しました。

これがあなたの問題を解決することを願っています。

関連する問題