如何将 jenkins 连接到需要客户端 ssl 的 gitlab?

如何将 jenkins 连接到需要客户端 ssl 的 gitlab?

我需要使用受双向 SSL 身份验证保护的自托管 gitlab 存储库。因此,为了连接 git 自己的凭据,对 git 的请求应该带有客户端 SSL。

从浏览器的角度来看。导入 pfx 证书后,我们可以使用 google chrome 和 mozilla firefox 进行浏览。

jenkins 盒子上的 git 客户端已经通过全局 git config http.sslCert 配置了 ssl 客户端,并且已经通过命令行进行了测试并可正常工作。我正在使用jenkins version 2.141

我还通过上传 p12 证书向 git 添加了一种新类型的凭证,如下所示 Jenkins 凭证页面

但出于某些原因,当我单击添加按钮时,jenkins 仍然无法显示选择该客户端证书的方法。因此,我使用 p12 证书添加了一个新证书,有密码和无密码,结果都一样。有密码时,我在密码字段中输入了导出密码

带密码的 p12 证书

使用无密码的 p12 证书

无密码的p12证书

测试连接时,两者的结果相同: 测试连接

hudson.plugins.git.GitException: Command "git fetch --tags --progress 
origin +refs/heads/master:refs/remotes/origin/master --prune" returned 
status code 128:
stdout: 
stderr: fatal: unable to access 
'https://git.theurl.git/': The 
requested URL returned error: 400

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:420)
at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:351)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:196)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:172)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:108)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

我真的别无选择。我在堆栈溢出但这并没有真正起到作用。如何绕过这个拦截器?最近有人做过吗?

相关内容