问题
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:
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.
回答5:
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
回答6:
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;
回答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:
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
回答9:
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
来源:https://stackoverflow.com/questions/3147660/server-certificate-verification-failed-issuer-is-not-trusted