
CentOS 7からEPELを介してGit 2.18にアップグレードしたところ、Gitはリモートサーバーとの通信に関連する操作を実行できず、次のメッセージが表示されます。
fatal: unable to access 'https://my.repo.git/': Peer's certificate has an invalid signature.
などの状況で発生しますgit clone
。git pull
これを使用して同じコマンドを実行すると、sudo
正常に動作します。これにより、不正なファイル権限が原因でGitが必要な証明書や資格情報にアクセスできないようです。ところで、どこで確認するのか、どの証明書を確認するのかわかりません。詳細情報表示モードでGitを実行すると、追加情報は表示されません。
答え1
主な問題は、pkcs11.txt
ローカルコピー~/.pki/nssdb/
とシステムコピーという2つのコピーがあることです/etc/pki/nssdb/
。 Gitはローカルユーザーバージョンよりもシステムバージョンを好みます。長い間、私はリポジトリにアクセスするために必要なPKCS情報を含むローカルバージョンのみを持っていました。ある時点で、新しいパッケージ(おそらくGitアップデート)を必要とするPKCS情報を持たないこのファイルのシステムバージョンを作成しました。したがって、Git(NSS経由)がpkcs11.txt
。
解決策は、ローカルコピーをシステム全体のコピーにマージすることでした。
この問題を解決するのに役立ついくつかの方法は、次の環境変数を設定することです。
GIT_CURL_VERBOSE=1
GIT_TRACE_VERBOSE=2
そしてこれらのスレッドは:
https://superuser.com/questions/1091521/centos-7-wont-accept-any-ssl-certificates