web-dev-qa-db-ja.com

github:サーバー証明書の検証に失敗しました

Githubアカウントとリポジトリを作成しましたが、推奨URLを使用してローカル作業コピーを作成しようとすると

git clone https://github.com/<user>/<project>.git

次のようなエラーが表示されます

致命的: ' https://github.com/ <user>/<project> .git 'にアクセスできません:サーバー証明書の検証に失敗しました。 CAfile:/home/<user>/.ssl/trusted.pem CRLfile:なし

私はDebian Jessieを使用しており、DebianとGitHubの両方が一般的に受け入れられているCAの選択を提供/依存することを期待していましたが、明らかに私のシステムはGibHubの証明書を信頼していません。

これを修正する簡単な方法(頻繁に推奨される「GIT_SSL_NO_VERIFY = true」ハックと同様の回避策なし)

編集:

追加情報:

  • Ca-certificateパッケージがインストールされます。
  • @VonCが示唆するcacert.orgの証明書をインストールしても何も変わりませんでした。
  • 私の個人的な〜/ .ssl/trusted.pemファイルにはいくつかのエントリが含まれていますが、正直なところ、追加された証明書がどこから来たのか覚えていません...
  • 〜/ .ssl/trusted.pemを削除すると、gitエラーメッセージが次のように変わります。

    fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
    

編集:

git https.sslCAinfoオプションに関する@VonCのアドバイスにより、私は正しい道を歩むことができました-ダウンロードしたcacert.org CAをtrusted.pemに追加しただけで、gitはもう文句を言いません。

22
Torsten Crass

最初に/etc/ssl/certsでDebianに証明書がインストールされていることを確認してください。

そうでない場合は、再インストールします。

Sudo apt-get install --reinstall ca-certificates

パッケージにroot証明書が含まれない なので、追加:

Sudo mkdir /usr/local/share/ca-certificates/cacert.org
Sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
Sudo update-ca-certificates

GitがそれらのCAを参照していることを確認してください:

git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

Jason C は別の潜在的な原因に言及しています( コメント内 ):

それは時計でした。 NTPサーバーがダウンし、システムクロックが適切に設定されていなかったため、最初に確認したり気付かなかったり、誤った時間のために検証が失敗した。

証明書は時間依存です

48
VonC

次のように入力して、SSL検証を無効にすることもできます(プロジェクトがログイン/パスワード以外の高度なセキュリティを必要としない場合)。

git config --global http.sslverify false

gitをお楽しみください:)

45
mkebri

自己署名証明書などにすることもできます。SSL検証をグローバルにオフにすることは安全ではありません。システムから見えるように証明書をインストールできますが、証明書は完全に正しいはずです。

または、1回限りの構成パラメーターでクローンを作成できるため、コマンドは次のようになります。

git clone -c http.sslverify=false https://myserver/<user>/<project>.git;

GITはfalse値を記憶します。<project>/.git/configファイルで確認できます。

10
dmatej

URLでリポジトリに接続してみてください:http://github.com/<user>/<project>.git(http accept https)

あなたの場合、次のようにクローンを作成する必要があります。

git clone http://github.com/<user>/<project>.git