Git を使用して、自己署名証明書を受け入れるように指示する方法はありますか?
私は https サーバーを使用して git サーバーをホストしていますが、現時点では証明書は自己署名されています。
初めてリポジトリを作成しようとすると、次のようになります。
git push origin master -f
次のエラーが発生します:
error: Cannot access URL
https://the server/git.aspx/PocketReferences/, return code 22
fatal: git-http-push failed
ベストアンサー1
特定の証明書を永久に受け入れる
http.sslCAPath
または を試してくださいhttp.sslCAInfo
。アダム・スパイアーズの回答素晴らしい例をいくつか挙げています。これが質問に対する最も安全な解決策です。
単一のgitコマンドのTLS/SSL検証を無効にするには
-c
適切な設定変数を渡してみるgit
か、フローの答え:
git -c http.sslVerify=false clone https://example.com/path/to/git
すべてのリポジトリのSSL検証を無効にするには
SSL 検証をグローバルに無効にすることは可能です。これを行わないことを強くお勧めしますが、完全性のために記載します。
git config --global http.sslVerify false # Do NOT do this!
には SSL 設定オプションが多数ありますgit
。 のマニュアル ページから引用しますgit config
。
http.sslVerify
Whether to verify the SSL certificate when fetching or pushing over HTTPS.
Can be overridden by the GIT_SSL_NO_VERIFY environment variable.
http.sslCAInfo
File containing the certificates to verify the peer with when fetching or pushing
over HTTPS. Can be overridden by the GIT_SSL_CAINFO environment variable.
http.sslCAPath
Path containing files with the CA certificates to verify the peer with when
fetching or pushing over HTTPS.
Can be overridden by the GIT_SSL_CAPATH environment variable.
その他の便利な SSL 構成オプション:
http.sslCert
File containing the SSL certificate when fetching or pushing over HTTPS.
Can be overridden by the GIT_SSL_CERT environment variable.
http.sslKey
File containing the SSL private key when fetching or pushing over HTTPS.
Can be overridden by the GIT_SSL_KEY environment variable.
http.sslCertPasswordProtected
Enable git's password prompt for the SSL certificate. Otherwise OpenSSL will
prompt the user, possibly many times, if the certificate or private key is encrypted.
Can be overridden by the GIT_SSL_CERT_PASSWORD_PROTECTED environment variable.