[英]Jenkins: Server SSL certificate verification failed - issuer is not trusted
[英]Server certificate verification failed: issuer is not trusted
運行ANT腳本目標時,我遇到錯誤。 錯誤消息“服務器證書驗證失敗”。 請幫助解決此問題。 我在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
你可以嘗試使用命令行手動將svn checkout
運行到你的URL https://yoururl/trunk C:\\ant-1.8.1\\Test_Checkout
並接受證書。
或者@AndrewSpear在下面說
而不是從終端(Mac)/命令行(Win)手動運行svn list https://your.repository.url
,以獲得永久接受證書的選項
svn會要求你確認。 永久地接受它。
之后,這應該適用於來自ant腳本的后續請求。
對所有可用選項運行“svn help commit”。 您將看到有一個選項負責接受服務器證書:
--trust-server-cert
:接受未知的SSL服務器證書而不提示(但只能使用--non-interactive
)
將它添加到您的svn命令參數中,您不需要手動運行svn來永久接受它。
我不會用:
svn checkout
只是為了授權服務器身份驗證,我寧願使用:
svn list https://your.repository.url
它也會要求你進行身份驗證。
如果需要這樣才能獲得無法登錄的用戶的授權,請運行:
sudo -u username svn list https://your.repository.url
如果在Windows Server上使用帶有Jenkins的svn,則必須使用相同的Jenkins的Windows服務用戶接受https證書。
因此,如果您的Jenkins服務以“MYSERVER \\ Administrator”運行,則必須在所有其他服務之前使用此命令,當然只有一次:
runas / user:MYSERVER \\ Administrator“svn --username user --password password list https:// myserver / svn / REPO ”
svn要求您接受證書並將其存儲在正確的路徑中 。
在此之后,您將能夠在Windows批處理命令步驟中直接在jenkins作業中使用svn。
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;
只需將服務器證書安裝在客戶端的受信任根證書容器中(如果經過認證,則過期可能不起作用)。 有關詳細信息,請參閱此類相似問題的帖子。
其他答案對我不起作用。 我正在嘗試讓命令行在Jenkins中運行。 您只需要以下命令行參數:
--non-interactive
--trust-server-cert
在命令行工作期間。 我在構建完成后使用Ant來提交工件。 遇到同樣的問題......手動除了證書不起作用(詹金斯很有趣)。 將這些選項添加到您的svn命令:
--non交互式
--trust服務器證書
從cmd run:SVN List URL你將獲得3個選項(r)彈出,(a)ccept,(p)永久性。 輸入p。 這個解決了我的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.