可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am getting below error when running a target of ANT script. Error message saying that "server certificate verification is failed". Please help how to remove this problem. I am working in 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
回答1:
can you try to run svn checkout
once manually to your URL https://yoururl/trunk C:\ant-1.8.1\Test_Checkout
using command line and accept certificate.
Or as @AndrewSpear says below
Rather than checking out manually run svn list https://your.repository.url
from Terminal (Mac) / Command Line (Win) to get the option to accept the certificate permanently
svn will ask you for confirmation. accept it permanently.
After that this should work for subsequent requests from ant script.
回答2:
Run "svn help commit" to all available options. You will see that there is one option responsible for accepting server certificates:
--trust-server-cert
: accept unknown SSL server certificates without prompting (but only with --non-interactive
)
Add it to your svn command arguments and you will not need to run svn manually to accept it permanently.
回答3:
I wouldn't use:
svn checkout
just to authorizes the server authentication, I rather use:
svn list https://your.repository.url
which will ask you to do the authentication as well.
If this is needed to get authorization to a user that can't login, run:
sudo -u username svn list https://your.repository.url
回答4:
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;
回答5:
from cmd run: SVN List URL you will be provided with 3 options (r)eject, (a)ccept, (p)ermanently. enter p. This resolved issue for me
回答6:
If you are using svn with Jenkins on a Windows Server, you must accept https certificate using the same Jenkins's Windows service user.
So , if your Jenkins service runs as "MYSERVER\Administrator", you must use this command before all others, only one time of course :
runas /user:MYSERVER\Administrator "svn --username user --password password list https://myserver/svn/REPO "
svn asks you to accept the certificate and stores it in the right path.
After this you'll be able to use svn in jenkins job directly in a Windows batch command step.
回答7:
The other answers don't work for me. I'm trying to get the command line working in Jenkins. All you need are the following command line arguments:
--non-interactive
--trust-server-cert
回答8:
Just install the server certificate in the client's trusted root certificates container (if certified it's expired may not work). For further details see this post of similar question.
https://stackoverflow.com/a/21238125/3215589
回答9:
during command line works. I'm using Ant to commit an artifact after build completes. Experienced the same issue... Manually excepting the cert did not work (Jenkins is funny that way). Add these options to your svn command:
--non-interactive
--trust-server-cert