I recently did a setup of Jenkins that had to access git repositories via https on a server that only had a self signed certificate. Here are the bits and pieces that I had to configure.
Ignoring SSL warnings in git
Since all git traffic was internal I chose not to bother too much about this isssue and just disable http certificate checks in git. If you run the command
git config --global http.sslVerify true
an entry like this will be added to your .gitconfig
:
[http]
sslVerify = false
We’ll have to put this .gitconfig
in a couple of places to enable Jenkins accessing the git server.
Jenkins master
Certain operations are performed on the master itself, e.g. scanning the repo for branches in multibranch pipelines. The .gitconfig
mentioned above must be placed into /var/jenkins_home/.gitconfig
on the master. In my case this was a Docker setup so I mounted the file into the container.
Jenkins worker
Before the first build step of a pipeline actually runs Jenkins does a git checkout on the worker node. Even if you choose to run your build inside a Docker container the checkout happens before the container is actually started. So the user running the Jenkins agent must be configured with the .gitconfig
mentioned above, too.
Not covered here
I’m sure there are other places where a git checkout happens in Jenkins, e.g. if you do a checkout as part of a pipeline using the checkout()
function in a Jenkinsfile. Since I don’t use that functionality right now I did not bother to go into details here.