ファイアウォールの背後でHTTPS経由でGitHubにアクセスしようとするとSSL証明書が拒否される 質問する

ファイアウォールの背後でHTTPS経由でGitHubにアクセスしようとするとSSL証明書が拒否される 質問する

私はファイアウォールの内側にいるので、GitHubリポジトリにアクセスするにはHTTPSを使用する必要があります。シグウィン1.7.7以降ウィンドウズ

リモートを に設定しようとしましたが、 を押すとパスワードの入力を求められますが、入力しても何も起こりません。空のリポジトリを最初からクローンしましたが、毎回同じエラーが発生します。https://[email protected]/username/ExcelANT.githttps://username:<password>github.com/username/ExcelANT.git

エラー: SSL 証明書の問題です。CA 証明書が正常であることを確認してください。詳細: エラー:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:アクセス中に証明書の検証に失敗しましたhttps://github.com/ユーザー名/ExcelANT.git/info/refs

GIT_CURL_VERBOSE=1電源を入れると

* github.com ポート 443 (#0) への connect() を実行しようとしています * 207.97.227.239 を試行しています... * 証明書の検証場所を正常に設定しました: * CAfile: none CApath: /usr/ssl/certs * SSL 証明書の問題です。CA 証明書が正常であることを確認してください。詳細: error:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed * 有効期限がクリアされました * 接続 #0 を閉じています * github.com ポート 443 (#0) への connect() を実行しようとしています * 207.97.227.239 を試行しています... * 証明書の検証場所を正常に設定しました: * CAfile: none CApath: /usr/ssl/certs * SSL 証明書の問題です。CA 証明書が正常であることを確認してください。詳細: エラー:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました * 有効期限がクリアされました * 接続 #0 を閉じています エラー: SSL 証明書の問題です。CA 証明書が正常であることを確認してください。詳細: エラー:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:アクセス中に証明書の検証に失敗しましたhttps://github.com/ユーザー名/ExcelANT.git/info/refs

fatal: HTTP request failed

これはファイアウォール、Cygwin、あるいは何か他の問題でしょうか?

Gitの設定でHTTPプロキシを設定していませんでした。しかし、これはISAサーバーなので、NTLM認証は基本的ではないので、誰かが Git に NTLM の使用を強制する方法を知らない限り、私は失敗します。

ベストアンサー1

問題は、あなたが証明する機関(CA) 証明書がシステムにインストールされています。これらの証明書は、Cygwin のsetup.exeではインストールできません。

Cygwin に Net/ca-certificates パッケージをインストールする(ありがとう、dirkjot)

解決策は2つあります。

  1. 実際にルート証明書をインストールします。curlの人たちがMozillaから証明書を抽出しました

cacert.pem探しているファイルはこれです。このファイルには 250 を超える CA 証明書が含まれています (これだけの数の人を信頼する方法はわかりません)。このファイルをダウンロードし、個々の証明書に分割して/usr/ssl/certs (CApath) に配置し、インデックスを作成する必要があります。

やり方は次のとおりです。Cygwin setup.exeでcurlをインストールし、オープンSSLパッケージ。

実行する:

<!-- language: lang-bash -->

    $ cd /usr/ssl/certs
    $ curl http://curl.haxx.se/ca/cacert.pem |
      awk '{print > "cert" (1+n) ".pem"} /-----END CERTIFICATE-----/ {n++}'
    $ c_rehash

重要: 使用するにはc_rehashインストールも必要ですopenssl-perl

  1. SSL 証明書の検証を無視します。

    警告: SSL証明書の検証を無効にすると、セキュリティに影響します。SSL /HTTPS接続の信頼性を検証しないと、悪意のある攻撃者が信頼できるエンドポイント(GitHubやその他のリモートGitホストなど)になりすまし、中間者攻撃これを解決策として使用する前に、セキュリティの問題と脅威モデルを十分に理解してください

    env GIT_SSL_NO_VERIFY=true git clone https://github...

おすすめ記事