Je reçois une erreur ci-dessous lors de l'exécution d'une cible du script ANT Message d'erreur indiquant que "la vérification du certificat du serveur a échoué". S'il vous plaît, aidez-nous à résoudre ce problème. Je travaille sous 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
pouvez-vous essayer d'exécuter svn checkout
une fois manuellement sur votre URL https://yoururl/trunk C:\ant-1.8.1\Test_Checkout
en utilisant la ligne de commande et accepter le certificat.
Ou comme @AndrewSpear dit ci-dessous
Plutôt que de vérifier, exécutez manuellement svn list https://your.repository.url
à partir de Terminal (Mac)/Ligne de commande (Win) pour pouvoir accepter le certificat définitivement
svn vous demandera une confirmation. l'accepter de façon permanente.
Après cela, cela devrait fonctionner pour les requêtes suivantes de script ant.
Exécutez "svn help commit" sur toutes les options disponibles. Vous verrez qu’il existe une option responsable de l’acceptation des certificats de serveur:
--trust-server-cert
: accepte les certificats de serveur SSL inconnus sans invite (mais seulement avec --non-interactive
)
Ajoutez-le à vos arguments de commande svn et vous n'aurez pas besoin de l'exécuter manuellement pour l'accepter définitivement.
Je n'utiliserais pas:
svn checkout
juste pour autoriser l'authentification du serveur, je préfère utiliser:
svn list https://your.repository.url
qui vous demandera de faire l'authentification aussi.
Si cela est nécessaire pour obtenir une autorisation pour un utilisateur qui ne peut pas se connecter, lancez:
Sudo -u username svn list https://your.repository.url
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;
from cmd run: SVN List URLvous aurez trois options (r) éjecter, (a) ccept, (p) de façon permanente . entrez p ..__
Si vous utilisez svn avec Jenkins sur un serveur Windows, vous devez accepter le certificat https utilisant le même utilisateur du service Windows de Jenkins.
Donc, si votre service Jenkins s'exécute en tant que "MYSERVER\Administrateur", vous devez utiliser cette commande avant tous les autres, une seule fois bien sûr:
runas/user: MYSERVER\Administrator "svn --username utilisateur --password mot de passe liste https: // myserver/svn/REPO "
svn vous demande d'accepter le certificat et le stocke dans le bon chemin.
Après cela, vous pourrez utiliser svn in jenkins job directement dans une étape de commande par lots de Windows.
Il suffit d’installer le certificat de serveur dans le conteneur de certificats racine de confiance du client (son expiration peut ne pas fonctionner si certifié).
pendant les travaux en ligne de commande. J'utilise Ant pour valider un artefact une fois la construction terminée. Expérimenté le même problème ... Exclure manuellement le cert n'a pas fonctionné (Jenkins est drôle ainsi) Ajoutez ces options à votre commande svn:
- non interactif
--trust-server-cert
Les autres réponses ne fonctionnent pas pour moi. J'essaie de faire en sorte que la ligne de commande fonctionne dans Jenkins . Tout ce dont vous avez besoin sont les arguments de ligne de commande suivants:
--non-interactive
--trust-server-cert