web-dev-qa-db-ja.com

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

ANTスクリプトのターゲットを実行すると、次のエラーが発生します。 「サーバー証明書の検証に失敗しました」というエラーメッセージ。この問題を解決する方法を教えてください。 Windows XPで作業しています。

C:\Apache-ant-1.8.1>ant checkout
Buildfile: C:\Program Files\Java\Apache-ant-1.8.1\build.xml

checkout:
[svn] Using command line interface
Svn : Checking out a working copy from a repository :
co -r HEAD https://col.../trunk C:\ant-1.8.1\Test_Checkout 
--username 69 --password *******--non-interactive
svn: PROPFIND request failed on '/svn/asia-pac-financials/trunk'
svn: PROPFIND of '/sv.../trunk': 
Server certificate verification failed: 
issuer is not trusted (https://col....com)

BUILD FAILED
C:\Apache-ant-1.8.1\build.xml:16: Can't checkout

Total time: 3 seconds
66
Shaun

svn checkout 1回手動でURLにhttps://yoururl/trunk C:\ant-1.8.1\Test_Checkoutコマンドラインを使用して、証明書を受け入れます。

または、@ AndrewSpearが以下に述べているように

手動でチェックアウトするのではなく、svn list https://your.repository.urlターミナル(Mac)/コマンドライン(Win)から、証明書を永久に受け入れるオプションを取得します。

svnは確認を求めます。永続的に受け入れます。

その後、これはantスクリプトからの後続のリクエストで機能するはずです。

139
JoseK

使用可能なすべてのオプションに対して「svn help commit」を実行します。サーバー証明書の受け入れを担当するオプションが1つあることがわかります。

--trust-server-cert:プロンプトを表示せずに未知のSSLサーバー証明書を受け入れます(ただし、--non-interactive

Svnコマンドの引数に追加すれば、svnを手動で実行して永続的に受け入れる必要はありません。

48
andrey.tsykunov

私は使用しません:

svn checkout

サーバー認証を許可するために、私はむしろ使用します:

svn list https://your.repository.url

認証も行うように求められます。

ログインできないユーザーの承認を得るためにこれが必要な場合は、次を実行します。

Sudo -u username svn list https://your.repository.url
11
Kuf

Windows Server上のJenkinsでsvnを使用している場合、同じJenkinsのWindowsサービスユーザーを使用してhttps証明書を受け入れる必要があります。
[。

runas/user:MYSERVER\Administrator "svn --username user --password password list https:// myserver/svn/REPO "

svnは、証明書を受け入れるように求めます 正しいパスに保存します

この後、Windowsバッチコマンドステップでjenkinsジョブでsvnを直接使用できるようになります。

2
string cmdArguments = $@"/k svn log --trust-server-cert --non-interactive ""{servidor}"" --username alex --password alex -r {numeroRevisao}";
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe", cmdArguments);

cmd.CreateNoWindow = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
cmd.UseShellExecute = false;

Process reg = Process.Start(cmd);
string output = "";

using (System.IO.StreamReader myOutput = reg.StandardOutput)
{
    output += myOutput.ReadToEnd();
}
using (System.IO.StreamReader myError = reg.StandardError)
{
    output += myError.ReadToEnd();
}

return output;
1
Alexandre Lopes

クライアントの信頼されたルート証明書コンテナにサーバー証明書をインストールするだけです(有効期限が切れていることが証明された場合、機能しない場合があります)。詳細については、同様の質問のこの投稿を参照してください。

https://stackoverflow.com/a/21238125/3215589

1
Mark

from cmd run:SVN List URLには、3つのオプション(r)eject、(a)ccept、(p)ermanentlyが提供されます。 pと入力します。私にとってこれは解決した問題

0
moglimcgrath

コマンドライン中に動作します。ビルドの完了後に、Antを使用してアーティファクトをコミットしています。同じ問題を経験しました...証明書を除いて手動で動作しませんでした(ジェンキンスはそのように面白いです)。これらのオプションをsvnコマンドに追加します。

-非インタラクティブ

--trust-server-cert

0
user2087890

他の答えは私にはうまくいきません。 Jenkinsでコマンドラインを機能させようとしています。必要なのは、次のコマンドライン引数だけです。

--non-interactive

--trust-server-cert

0
lanierhall