webentwicklung-frage-antwort-db.com.de

Überprüfung des Serverzertifikats fehlgeschlagen: Aussteller ist nicht vertrauenswürdig

Beim Ausführen eines ANT-Skriptziels wird eine Fehlermeldung angezeigt. Fehlermeldung, dass die Überprüfung des Serverzertifikats fehlgeschlagen ist. Bitte helfen Sie, wie Sie dieses Problem beheben können. Ich arbeite 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
63
Shaun

können Sie versuchen, svn checkout einmal manuell über die Befehlszeile zu Ihrer URL https://yoururl/trunk C:\ant-1.8.1\Test_Checkout auszuführen und das Zertifikat zu akzeptieren.

Oder wie @AndrewSpear unten sagt

Statt manuell auschecken zu müssen, führen Sie svn list https://your.repository.url über Terminal (Mac)/Befehlszeile (Win) aus, um die Option zur dauerhaften Annahme des Zertifikats zu erhalten

svn bittet Sie um Bestätigung. Akzeptiere es dauerhaft.

Danach sollte dies für nachfolgende Anfragen vom Ant-Skript funktionieren.

132
JoseK

Führen Sie "svn help commit" für alle verfügbaren Optionen aus. Sie werden sehen, dass es eine Möglichkeit gibt, Serverzertifikate anzunehmen:

--trust-server-cert: Akzeptieren Sie unbekannte SSL-Serverzertifikate ohne Eingabeaufforderung (aber nur mit --non-interactive)

Fügen Sie es Ihren svn-Befehlsargumenten hinzu, und Sie müssen svn nicht manuell ausführen, um es dauerhaft zu akzeptieren.

47
andrey.tsykunov

Ich würde nicht verwenden:

svn checkout

um die Serverauthentifizierung zu autorisieren, verwende ich eher:

svn list https://your.repository.url

in diesem Fall werden Sie auch aufgefordert, die Authentifizierung durchzuführen.

Wenn dies erforderlich ist, um die Berechtigung für einen Benutzer zu erhalten, der sich nicht anmelden kann, führen Sie Folgendes aus:

Sudo -u username svn list https://your.repository.url
10
Kuf
string cmdArguments = [email protected]"/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

von cmd run: SVN List URL Ihnen werden 3 Optionen (r) Eject, (a) ccept, (p) ermanently ..__ angezeigt. Geben Sie p ..__ ein. Dieses Problem wurde für mich behoben

1
moglimcgrath

Wenn Sie svn mit Jenkins auf einem Windows Server verwenden, müssen Sie das https-Zertifikat mit demselben Windows-Dienstbenutzer von Jenkins akzeptieren.
Wenn also Ihr Jenkins-Dienst als "MYSERVER\Administrator" ausgeführt wird, müssen Sie diesen Befehl vor allen anderen verwenden, natürlich nur einmal: 

runas/user: MYSERVER\Administrator "svn --username user --password Kennwortliste https: // myserver/svn/REPO "

svn bittet Sie, das Zertifikat zu akzeptieren und speichert es auf dem richtigen Weg.

Danach können Sie svn in jenkins job direkt in einem Windows-Batch-Befehlsschritt verwenden.

1

Installieren Sie einfach das Serverzertifikat im Container für vertrauenswürdige Stammzertifikate des Clients (wenn das Zertifikat abgelaufen ist, funktioniert es möglicherweise nicht). Für weitere Details siehe diesen Beitrag mit ähnlicher Frage.

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

1
Mark

während der Befehlszeile arbeitet. Ich verwende Ant, um ein Artefakt nach Abschluss des Builds zu übergeben. Erlebte das gleiche Problem ... Manuell mit Ausnahme des Zertifikats funktionierte nicht (Jenkins ist lustig). Fügen Sie Ihrem svn-Befehl diese Optionen hinzu:

--nicht interaktiv

--trust-server-cert

0
user2087890

Die anderen Antworten funktionieren für mich nicht. Ich versuche, die Befehlszeile in Jenkins ..__ zum Laufen zu bringen. Alles was Sie brauchen, sind die folgenden Befehlszeilenargumente:

--non-interactive

--trust-server-cert

0
BunnyStrider