1. ホーム
  2. windows

[解決済み] 自己署名証明書を持つWindowsでgitを使用して「unable to get local issuer certificate」を解決できない。

2022-03-08 20:09:15

質問

WindowsでGitを使っています。msysGit パッケージをインストールしました。私のテストリポジトリは、サーバーで自己署名された証明書を持っています。HTTPで問題なくリポジトリにアクセスし、使用することができます。HTTPSに移行すると、エラーが発生します。

<ブロッククオート

SSL証明書の問題: ローカルの発行者証明書を取得できません。

Windows 7 - クライアントマシンの信頼されたルート認証局に自己署名証明書をインストールしました。Internet Explorer で HTTPS リポジトリの URL をエラーメッセージなしにブラウズできます。

フィリップ・ケリーによるこのブログ記事 は、cURLがクライアントマシンの証明書ストアを使用しないことを説明しました。ブログ記事のアドバイスに従って、プライベートコピーの curl-ca-bundle.crt を作成し、それを使用するようにGitを設定しました。Gitが私のコピーを使用していることは確かです。コピーをリネームすると、Gitはファイルが見つからないと文句を言います。

ブログの記事にあるように、証明書を貼り付けましたが、まだ "ローカル発行者証明書を取得できません" というメッセージが表示されます。

GitHub リポジトリを HTTPS 経由でクローンして、Git がまだ動作していることを確認しました。

ブログの記事と違うのは、私の証明書の ルートに到達するためのチェーンはありません。私の証明書はもともとIIS8のIISマネージャのリンク「自己署名証明書を作成する」をクリックしたものです。多分、これによって証明書がcURLが期待するものと何らかの形で異なっているのでしょう。

Git/cURL に自己署名証明書を受け入れさせるにはどうしたらいいですか?

どのように解決するのですか?

回答 から 開発用SSLにmakecertを使用する で修正しました。

なぜかわかりませんが、IIS マネージャーの「自己署名証明書を作成する」リンクで作成した証明書ではうまくいきません。 リンク先の質問にある、自己署名入りCAルートを作成してインストールし、それを使って私のサーバーのサーバー認証証明書を発行する、という方法に従いました。 IISにその両方をインストールしました。

その結果、私の状況は元の質問で参照されたブログの記事と同じになりました。 ルート証明書をcurl-ca-bundle.crtにコピー&ペーストすると、git/curlのコンボは満足のいくものになりました。