在尝试连接到通过https托管的repo时,我无法使用jenkins git插件。
Baue in Arbeitsbereich /opt/jenkins/jobs/TestJob2/workspace
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://my.host.de/group/project # timeout=10
Fetching upstream changes from https://my.host.de/group/project
> git --version # timeout=10
using GIT_ASKPASS to set credentials Jenkins at my.host.de
> git fetch --tags --progress https://my.host.de/group/project +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from https://my.host.de/group/project
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:766)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1022)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1053)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
at hudson.model.Run.execute(Run.java:1738)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress https://my.host.de/group/project +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: fatal: unable to access 'https://my.host.de/group/project/': Peer's Certificate issuer is not recognized.
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1709)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1438)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:63)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:314)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:764)
... 11 more
ERROR: null
Finished: FAILURE
我无法使用SSH。 证书还可以,一切看起来都很棒。
curl -Lv
未显示任何错误。
我可以通过ssh登录时在本地机器上克隆存储库,也没有错误消息。
我必须改变开关在哪里?
我可以在运行jenkins的用户将git属性http.sslVerify
设置为false时更改此行为,但这只是一种解决方法。
答案 0 :(得分:4)
我只花了一个小时调查这个问题。我测试的是,在master上,一切都很好,自定义CA被配置到系统中。遗憾的是,我花了一些时间意识到所有从属设备需要安装适当的gitconfig或CA证书才能工作。
答案 1 :(得分:1)
我解决了将 sslCAInfo 信息添加到.gitconfig
文件中的问题,如下所示:
$ echo -e "[http]\n\tsslCAInfo = /FOLDER_OF_CERTIFICATE/ca.pem" >> /var/lib/jenkins/.gitconfig
我当时正在与openshift一起工作...我是用来做主的,而做奴隶的是
答案 2 :(得分:0)
检查您的代理服务器设置以及其他 git/openssl 选项也是一个好主意。它帮助我通过更新正确的代理设置来解决这个问题。