我需要使用受双向 SSL 身份验证保护的自托管 gitlab 存储库。因此,为了连接 git 自己的凭据,对 git 的请求应该带有客户端 SSL。
从浏览器的角度来看。导入 pfx 证书后,我们可以使用 google chrome 和 mozilla firefox 进行浏览。
jenkins 盒子上的 git 客户端已经通过全局 git config http.sslCert 配置了 ssl 客户端,并且已经通过命令行进行了测试并可正常工作。我正在使用jenkins version 2.141
我还通过上传 p12 证书向 git 添加了一种新类型的凭证,如下所示
但出于某些原因,当我单击添加按钮时,jenkins 仍然无法显示选择该客户端证书的方法。因此,我使用 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
我真的别无选择。我在堆栈溢出但这并没有真正起到作用。如何绕过这个拦截器?最近有人做过吗?