$ git pull Origin master
fatal: unable to access 'https://xxxxxxxxxxxxxxx':
error setting certificate verify locations:
CAfile: C:/Users/abc/AppData/Local/Programs/Git/usr/bin/curl-ca-bundle.crt
CApath: none
コードをプルまたはプッシュすると、このエラーが発生します。
これを修正してください。
また、Windowsでこの問題に直面し、gitbashを使用してgitを実行していました。 gitbashを再インストールしただけで、git証明書はgit証明書と必要なパスを自動的に管理しました。
https
を使用する場合、パスワードを入力するか、証明書を使用する必要があります。あなたの場合、証明書は有効なものではないようです。
証明書を見つける場所をgitに指示して、このように修正してみてください:
// Add the certificate to your configuration file
git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"
または、SSLチェックを無効にすることもできます。
// or switch off SSL checks completely by executing:
git config --system http.sslverify false
設定でこれを設定して、すべてのリクエストではなく、指定されたURLに対してのみ無効にします
[http "https://weak.example.com"]
sslVerify = false
http.sslVerify
HTTPSを取得またはプッシュするときにSSL証明書を検証するかどうか。
http.sslCAInfo
HTTPSでフェッチまたはプッシュするときにピアを検証する証明書を含むファイル
私はかつて同じ問題を抱えていました。 git for Windowsを再インストールした後に問題が発生しました。私は、Windows 10上のWindows 64ビットにgitを使用しています。
インストーラーがC:/Users/[USER_NAME]/AppData/Local/Programs/Git
にgitをインストールしなくなったことがわかりました。代わりに、C:\Program Files\Git
の下にインストールしました。
それにもかかわらず、古い構成ファイルC:\ProgramData\Git\config
はインストーラーによって編集されませんでした。このファイルにはまだ古いパスが含まれているため、手動で編集しました。
例えば。私が使用したシステムで
[http]
sslCAInfo = C:/Programme/Git/mingw64/ssl/certs/ca-bundle.crt
代わりにProgram Files
を使用する必要があります
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
編集
DS が彼のコメントで言ったように
C:\ ProgramData\Git\configを管理者として編集する必要があります。
例えば。メモ帳を右クリックして "管理者として実行" を選択し、ファイルを開きます。
Git-bashのバージョン2.xでは、.crtへのパスが../Git/mingw64/ssl/certs/ca-bundle.crtに変更されました。私はこれをgit-bashで手動で更新する必要がありました
git config --global http.sslcainfo "/path/to/Git/mingw64/ssl/certs/ca-bundle.crt"
git config --global http.sslverify "false"
これを試して
git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"
または
このコマンドを実行してSSLをオフにします
git config --system http.sslverify false
これにより、GIT 2.xクライアントから2.5.xに移行しながら作業が行われます
GITクライアントの新しいバージョンをインストールすると、証明書の検索パスが次のように変更されます。
C:\Program Files\Git\mingw64
このようなものに:
C:\Program Files\Git\mingw64\libexec
これを修正するには、「ssl」フォルダを新しい場所にコピーするだけで、魅力的に機能します!
Gitバージョンが2.8.1.windows.1の場合、これが役立つ場合があります。最初に、gitホームディレクトリを見つける必要があります、私の同じディレクトリにあるD:\ SDK\Git.Justだけで、フォルダ「usr」を見つけることができ、それを開いて\ ssl\certsに移動し、証明書を見つけることができます: ca-bundle.crt。
次にコンソールを開き、実行します:git config --system http.sslcainfo "D:\SDK\Git\usr\ssl\certscabundle.crt"
Gitディレクトリに移動し、mingw64/sslフォルダーをmingw64/libexec/sslに移動します
将来の読者向け:
Cygwinにdevelパッケージをインストールした後、この問題が発生していました。
このスレッドですべての修正を試みましたが、何も機能しませんでした
次に、 githubのこのスレッド に遭遇しました
私がやったことは、gitconfigでCAPATHが指定されている場所を見つけ、そのhttps仕様を削除して、問題を解決したことです。
でSSL証明書を見つけました:
C:\Users\[USERNAME]\AppData\Local\GitHub\PortableGit_[portable code]\usr\ssl\certs
その後、 CodeWizard つまり:
// Add the certificate to your configuration file
git config --system http.sslcainfo "[LOCATION_SPECIFIED_ABOVE]/cabundle.crt"
現在のGit for Windowsビルド(2.18.0.windows.1)にはバグがあります。http.sslcainfoが設定されていない場合、C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt
で証明書ストアを見つけることが期待されます。
証明書ストアは実際にC:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
にインストールされるため、修正するには適切なパスを指定する必要があります。
さらに、このビルドではSCHANNEL実装も壊れています。
最後に、Git資格情報マネージャーも壊れています。これは、gitlab-runnerインストールから保存されたCI/CO資格情報がある場合、異なる資格情報の入力を求める代わりに、アクセス拒否エラーでクローン/プッシュ/プルに失敗するためです。
Windows 10のインストール後にcygwinを最新に更新した後、同じ問題が発生しました。インストール中にコマンドupdate-ca-trust
が失敗しました。
理由は、証明書フォルダーのグループ所有者が破損しているためと思われます。やや抜本的な解決策は/etc/group
を削除することでした。cygwinはwindowsにグループ権限を直接問い合わせることができました。
http://zaunerc.blogspot.se/2016/01/cygwin-mapping-windows-sids-to-posix.html で見つかったソリューション
https://github.com/npm/npm/issues/1484 に感謝git config --global http.sslverify "false"
は問題を解決します
Intellijとgit-sdk-64を使用し、最初にgit-sdk-64\mingw64\bin\git.exe
を選択してこの問題を取得し、git-sdk-64\cmd\git.exe
に切り替えると、証明書ファイルの場所のみを把握し、他の設定は不要でした。 (git config --global http.sslcainfo ...
を使用していません)
同じエラーメッセージが表示されましたが、githubリポジトリのクローンを作成中に、残念ながらhttp.sslcainfo
を設定してもまったく役に立ちませんでした。私がたまたま企業のプロキシサーバーの背後にいたので、http.proxy
を設定すると修正されました。
私は同じエラーがあり、デフォルトのパスにgitを再インストールして修正しました:
C:\ Program Files\Git
それで全部です
Windows 7でも同じエラーが発生しました。エラーで参照されている証明書パスが存在しないことがわかりました。..\ mingw32\usr\ssl ...の代わりに... certファイルは...\mingw2にありました。\ssl ...そこで、usrフォルダを手動で作成し、sslツリー全体をusrに移動しました。これにより問題が修正されました。
このスレッドは、盲目的な盲目的な答えがたくさんあります。私はもう1人の盲人ですが、同じ問題を抱えていて、 この簡単な記事 に従って解決しました。私は元の質問を理解しているので、gitはHTTPSプロトコルを使用するためにSSL証明書ファイルを見つけようとしましたが、ファイルを見つけることができませんでした。ここでの回答のほとんどは、ファイルを正しく置き換えるのではなく、「SSLを無効にするだけ」に焦点を当てているようです。
この呪文は、証明書ファイルを生成し、cygwinのgitの正しい場所に配置する必要があります。
$ curl -sL http://ca.pdinc.us > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \
&& update-ca-trust
Git configを(私がやったように)使いこなし、BACKを設定する必要がある場合、これを行う必要があります。
$ git config --global http.sslcainfo "/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt"
このスレッドを読んでいる多くの人々に影響を与える可能性のあるもう1つの補足事項:certファイルの予想される場所は、実行しているgit実行可能ファイルによって異なります。 Cygwinについて話しているので、おそらく(ほとんどの場合)Windowsネイティブのgitもインストールされています。 CygwinパスがWindows git実行可能ファイルを検索するように設定されている場合、http.sslcainfo
構成を指す場所に関してマイレージが異なる場合があります。どの実行可能ファイルがピックアップされているかを確認するには:
$ which git
私は、Windows 10の最後で問題を解決するのに次の手順が役立つことを発見しました。
Gitのアンインストールを行います。
ただし、git uninstallerはクリーンな仕事をしません。したがって、C:\ Users [私の名前]\AppData\Local\Programs \にあるGitディレクトリを削除する必要があるかもしれません
この後、gitの新規インストールでは、ssl証明書を読み取るために、configファイルが指すC:\ Program Files\Gitディレクトリにインストールする必要があります。
同じエラーメッセージが表示されますが、私の場合は、githubの設定を変更してhttpsではなくsshを使用したためです。
また、問題のあるリポジトリは、リモートを削除し、sshで再追加した後、httpsでクローン化され、期待どおりに機能しています。
$git remote remove Origin
$git remote add Origin [email protected]:UserName/repo.git
その後、git remote show Origin
はリモートを正しく表示します。