自己署名証明書を使用してhttpsで動作する企業gitサーバーがあります。ローカルクローンには2つのリモートが含まれます。Originはそのサーバーを指し、もう1つはgithubを指します。デフォルトでは、オリジンからのプルは失敗します:
$ git pull
fatal: unable to access 'https://[email protected]/git/fizzbuzz.git/': SSL certificate problem: self signed certificate
Githubリモートは正常に動作します。
よく提案される2つのソリューションがあります。
git config http.sslVerify false
これは悪い考えであり、 特定のhttpsリモートの特定の自己署名サーバー証明書を受け入れるようにGitを構成する で提案されたものです。
git config http.sslCAInfo <downloaded certificate>.pem
originからのプルを修正しますが、githubのリモートを壊します:
$ git pull github
fatal: unable to access 'https://github.com/user/fizzbuzz.git/': SSL certificate problem: unable to get local issuer certificate
GitHubからのプルを中断せずに企業サーバーからプルする方法
Git 1.8.5+(2013年8月)を使用している場合は、 RLごとにhttpディレクティブを指定してください(!) 。
あなたの場合:
git config --global http."https://code.example.com/".sslVerify false
#
# or, if not on default 443 port:
#
git config --global http."https://code.example.com:<aPort>/".sslVerify false
それはcode.example.com
に対してのみSSL検証を無効にし、他のURLに対しては無効にしません。
または:
git config --global http."https://code.example.com/".sslCAInfo <downloaded certificate>.pem
同じ考え:sslCAInfo
は<downloaded certificate>.pem
URLに対してのみcode.example.com
を指します。
Gitシステム証明書ストアに証明書を追加することができます。これは、 git-for-windows でC:\path\to\PortableGit-2.6.1-64-bit\usr\ssl\certs\ca-bundle.crt
になります。
ただし、内部証明書を含むGitディストリビューションを配布する必要がある場合を除き、ベストプラクティスではありません。
Git for Windows v2.5.0(git-for-windows.github.io)の時点で、インストールされた証明書ファイルは「C:\ Program Files(x86)\ Git\mingw32\ssl\certs\ca-bundle」に移動しました。 crt」。このファイルに証明書を追加する必要があります。