Msys2でSSL certificate problem: unable to get local issuer certificateが出たとき
エラー内容
git cloneしようとして、以下のようなエラー
fatal: unable to access 'https://gitlab-xxxx/yyyy/xxxx.git/': SSL certificate problem: unable to get local issuer certificate
原因
対象のGitサーバが使用している証明書のRoot証明書がmsys2に登録されてない。
対策
.gitconfigをちゃんと設定すればよし
対策の内容
- 普段はGit(というより、システムの)デフォルトCA証明書を使用してGitサーバにアクセスする
- 特定のサイトだけ、必要なCA証明書を指定してGitでアクセスするようにする
- 必要な証明書は複数の場合があります、ブラウザから必要な証明書出してcer形式で出力しcatで結合するとよい
- [SSL] SSLサーバ証明書に中間CA証明書が必要な場合,その中間CA証明書はどうやってインストールするのか? - GO-Global for Windows - きっとエイエスピー技術支援センター
上のサイトに書いてあるように、こんなpemファイル(拡張子は何でもよい)を作る
簡単に言えば,以下のようにSSLサーバ証明書,1つ上の中間CA証明書,さらにその上の中間CA証明書を (テキストとして) 結合し保存して下さい. -----BEGIN CERTIFICATE----- SSLサーバ証明書の内容 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- 1つ上の中間CA証明書の内容 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- さらにその上の中間CA証明書の内容 -----END CERTIFICATE-----
動作チェック
- git ls-remote を実行してやればOK
$ git ls-remote https://github.com/Hiroyuki-Nagata/foobar.git xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEAD xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/master $ git ls-remote https://gitlab.intra.com/foobar.git xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEAD xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refs/heads/master