web-dev-qa-db-ja.com

機関署名の証明書を無効にせずに自己署名SSL証明書を追加する

自己署名証明書を使用して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からのプルを中断せずに企業サーバーからプルする方法

29
Michael Ivko

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-windowsC:\path\to\PortableGit-2.6.1-64-bit\usr\ssl\certs\ca-bundle.crtになります。
ただし、内部証明書を含むGitディストリビューションを配布する必要がある場合を除き、ベストプラクティスではありません。

52
VonC

Git for Windows v2.5.0(git-for-windows.github.io)の時点で、インストールされた証明書ファイルは「C:\ Program Files(x86)\ Git\mingw32\ssl\certs\ca-bundle」に移動しました。 crt」。このファイルに証明書を追加する必要があります。

4
super_kamil