How do I set GIT_SSL_NO_VERIFY for specific repos only?

GitSsl

Git Problem Overview


I have to use a git server without proper certificates, but I don't want to have to do

env GIT_SSL_NO_VERIFY=true git command

every single time I do a git operation. But I would also like to leave SSL enabled for other git repositories. Is there a way to make this local to a single repo?

Git Solutions


Solution 1 - Git

You can do

git config http.sslVerify "false"

in your specific repo to disable SSL certificate checking for that repo only.

This won't work with git clone, since you don't yet have the local git repo to be able to set the flag in yet. Therefore in that case:

git -c http.sslVerify=false clone <path>
cd <directory>
git config http.sslVerify "false"

Solution 2 - Git

You can do as follows

For a single repo

git config http.sslVerify false

For all repo

git config --global http.sslVerify false

Solution 3 - Git

Like what Thirumalai said, but inside of the cloned repository and without --global. I.e.,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

Solution 4 - Git

In particular if you need recursive clone

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

Solution 5 - Git

If you have to disable SSL checks for one git server hosting several repositories, you can run :

git config --bool --add http.https://my.bad.server.sslverify false

This will add it to your user's configuration.

Command to check:

git config --bool --get-urlmatch http.sslverify https://my.bad.server 

(If you still use git < v1.8.5, run git config --global http.https://my.bad.server.sslVerify false)

Explanation from the documentation where the command is at the end, show the .gitconfig content looking like:

[http "https://my.bad.server"]
        sslVerify = false

It will ignore any certificate checks for this server, whatever the repository.

You also have some explanation in the code

Solution 6 - Git

If you are on a Windows machine and have the Git installed, you can try the below steps:

  1. Go to the folder of Git installation, ex: C:\Program Files (x86)\Git\etc

  2. Edit the file: gitconfig

  3. Under the [http] section, add the line: sslVerify = false

    [http]
      sslVerify = false
    

Solution 7 - Git

There is an easy way of configuring GIT to handle your server the right way. Just add an specific http section for your git server and specify which certificate (Base64 encoded) to trust:

~/.gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

This way you will have no more SSL errors and validate the (usually) self-signed certificate. This is the best way to go, as it protects you from man-in-the-middle attacks. When you just disable ssl verification you are vulnerable to these kind of attacks.

https://git-scm.com/docs/git-config#git-config-httplturlgt

Solution 8 - Git

This question keeps coming up and I did not find a satisfying result yet, so here is what worked for me (based on a previous answer https://stackoverflow.com/a/52706362/1806760, which is not working):

My server is https://gitlab.dev with a self-signed certificate.

First run git config --system --edit (from an elevated command prompt, change --system to --global if you want to do it for just your user), then insert the following snippet after any previous [http] sections:

[http "https://gitlab.dev"]
        sslVerify = false

Then check if you did everything correctly:

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false

Solution 9 - Git

This works for me:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

Solution 10 - Git

On Linux, if you call this inside the git repository folder:

git config http.sslVerify false

this will add sslVerify = false in the [http] section of the config file in the .git folder, which can also be the solution, if you want to add this manually with nano .git/config:

...
[http]
  sslVerify = false

Solution 11 - Git

One more point ,apart from

git config --global http.sslVerify false

just setting the SSL verification to false ,you also have to have the key to clone the repository. something like this

git clone https://[email protected]/myorg/MYpro.git"

5edwerwe32434lcvghjjextracgecj is the token generated from github under settings/ Developer settings/

Solution 12 - Git

for windows, if you want global config, then run

git config --global http.sslVerify false

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCharles RandallView Question on Stackoverflow
Solution 1 - GitJoachim IsakssonView Answer on Stackoverflow
Solution 2 - GitThirumalai muruganView Answer on Stackoverflow
Solution 3 - GitmceplView Answer on Stackoverflow
Solution 4 - Gituser5958256View Answer on Stackoverflow
Solution 5 - GitMat MView Answer on Stackoverflow
Solution 6 - Gitshasi kanthView Answer on Stackoverflow
Solution 7 - GitMatthias BView Answer on Stackoverflow
Solution 8 - GitmrexodiaView Answer on Stackoverflow
Solution 9 - GitTadejView Answer on Stackoverflow
Solution 10 - Gitrubo77View Answer on Stackoverflow
Solution 11 - GitHameed SyedView Answer on Stackoverflow
Solution 12 - Git176codingView Answer on Stackoverflow