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

运行ANT脚本的目标时,出现以下错误。 错误消息说“服务器证书validation失败”。 请帮助如何消除此问题。 我在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 

你可以尝试手动运行svn checkout到你的URL https://yoururl/trunk C:\ant-1.8.1\Test_Checkout使用命令行并接受证书。

或者@AndrewSpear如下所示

而不是手工运行从terminal(Mac)/命令行(Win)运行svn list https://your.repository.url以获得永久接受证书的选项

svn会要求你确认。 永久接受。

之后,这应该为ant脚本的后续请求工作。

对所有可用选项运行“svn help commit”。 您会看到有一个选项负责接受服务器证书:

--trust-server-cert :在不提示的情况下接受未知的SSL服务器证书(但只能使用--non-interactive

把它添加到你的svn命令参数中,你不需要手动运行svn来永久接受它。

我不会使用:

 svn checkout 

只是为了授权服务器authentication,我宁愿使用:

 svn list https://your.repository.url 

这也会要求你进行authentication。

如果需要授权给无法login的用户,请运行:

 sudo -u username svn list https://your.repository.url 
 ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe", @"/k svn log --trust-server-cert --non-interactive " + "\"" + servidor + "\"" + " --username alex --password alex -r " + numeroRevisao); 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; 

从cmd运行:SVN列表URL你将被提供3个选项(r)popup,(a)ccept,(p)ermanently。 inputp。 这解决了我的问题

如果您在Windows Server上与Jenkins一起使用svn,则必须使用相同的Jenkins的Windows服务用户接受https证书。
所以,如果你的Jenkins服务运行为“MYSERVER \ Administrator”,那么你必须先使用这个命令,当然只有一次:

runas / user:MYSERVER \ Administrator“svn –username用户–password密码列表https:// myserver / svn / REPO ”

svn要求您接受证书并将其存储在正确的path中

在这之后,你可以直接在Windows批处理命令步骤中使用jenkins作业中的svn。

其他答案不适合我。 我试图让jenkins的命令行工作。 所有你需要的是下面的命令行参数:

--non-interactive

--trust-server-cert

只需将服务器证书安装在客户端的受信任根证书容器中(如果证书已过期,则可能不起作用)。 欲了解更多详情,请参阅这个类似的问题。

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

在命令行工作。 我使用Ant在构build完成后提交工件。 遇到同样的问题…手工除了证书没有工作(jenkins是有趣的方式)。 将这些选项添加到您的svn命令:

–non交互式

–trust服务器证书