web-dev-qa-db-fra.com

La vérification du certificat de serveur a échoué: l'émetteur n'est pas approuvé.

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
63
Shaun

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.

132
JoseK

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.

47
andrey.tsykunov

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
10
Kuf
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;
2
Alexandre Lopes

from cmd run: SVN List URLvous aurez trois options (r) éjecter, (a) ccept, (p) de façon permanente . entrez p ..__

1
moglimcgrath

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.

1
Massimo Borgogno

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é).

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

1
Mark

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

0
user2087890

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

0
BunnyStrider