2016-03-05 33 views
6

が、私はちょうどそこにgithubのアカウントとリポジトリを作成しなかったが、githubの:サーバ証明書の検証は

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

経由recommende URLを使用して、ローカルの作業コピーを作成しようとしたとき、私は

のようなエラーが出ます

fatal: 'https://github.com/<user>/<project>.git'にアクセスできません:サーバー証明書の確認に失敗しました。 CAfile:/ホーム/ <ユーザー> /.ssl/trusted.pemのCRLfile:なし

私はDebianのジェシー上だ、と私はDebianとGitHubの両方が一般的に受け入れられているの選択に依存/提供することを期待しているだろう明らかに私のシステムはGibHubの証明書を信用していません。

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

EDIT:

追加情報:

  • CA証明書パッケージがインストールされています。
  • @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?) 
    

に変わりEDIT:gitのhttps.sslCAinfoオプションに関するVonCのアドバイス@

は、右のトラックに私を置く - 私はちょうど追加しました私のtにcacert.org CAをダウンロードしましたrusted.pem、そして今gitはもう文句を言わない。

+0

上記のCAfileには何がありますか? SSLがca証明書を検出していない可能性がありますか?あなたはそれらをインストールしましたか? – Reactormonk

+0

gitがこれらのcaを参照するように答えを編集しました。 – VonC

答えて

18

まず、Debianに証明書がインストールされていることを確認してください(/etc/ssl/certs)。

ない場合は、それらを再インストールします。

sudo apt-get install --reinstall ca-certificates 

そのpackage does not include root certificatesので、追加:

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マシオ別の潜在的な原因(in the comments):

時計だった。 NTPサーバーがダウンしていて、システムクロックが正しく設定されていなかったり、最初に確認することができなかったり、間違っていると検証が失敗しました。

Certificates are time sensitive

+0

私も同じメッセージを受け取ります。特に私の致命的な:URLにアクセスすることができません/ ':サーバー証明書の確認に失敗しました。 CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile:なし。私はssh上でgitを使用しています。違いはありますか? –

+0

@CodedContainerはい:CA(認証局)がTLS証明書の公開鍵を検証します(httpsで使用)。 ssCAinfoはssh urlとは関係ありません。あなたのリモートURLはhttpsで始まらないと確信していますか? – VonC

+0

Hm。私は突然、今日このエラーが発生し始めました.1つのデバイス(ラズベリーパイ)が最後に動作してからは触れられていませんでした。私はこの回答のすべてのステップを実行し、いくつかの新しい証明書を取得しましたが、私はまだ同じエラーが発生しています(git URLはhttpsで始まり、gitlab.com上にあります)。他のアイデア? –

15

また、入力して、SSL認証を無効にすることができます

git config --global http.sslverify false

感謝:)

+1

Downvotedもちろん:これはテストのために行うことができますが、そうでない場合は、ssl検証を無効にするべきではありません。 – VonC

+0

なぜでしょうか!ログイン/パスワードの認証タイプを変更したい場合は! "義務"を確認する信頼できるソースがある場合:sslを非アクティブ化しないように、私にそれを伝えてください。 コメントありがとうございました:) – mkebri

+1

義務ではなく、(非常に強い)推奨事項です。 SSL証明書は、あなたと*既知のエンドポイント間のエンドツーエンド暗号化に関するものです。脱活性化ssl証明書はあなたにMiM攻撃を公開します(https://en.wikipedia.org/wiki/Man-in-the-middle_attack) – VonC

3

をまた、自己署名などの証明書、SSL検証をオフにすることができる世界的に安全ではありません。システムに表示されるように証明書をインストールできますが、証明書は完全に正しいはずです。

それとも、一度設定パラメータでクローンを作成することができますので、コマンドは次のようになります。

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

GITは、あなたが<project>/.git/configファイルでそれを確認することができ、偽の値を覚えています。

関連する問題