遇到问题

25@YunLeng MINGW64 /d
$ git clone https://github.com/s9roll7/ebsynth_utility.git
Cloning into 'ebsynth_utility'...
fatal: unable to access 'https://github.com/s9roll7/ebsynth_utility.git/': SSL certificate problem: unable to get local issuer certificate

git SSL certificate problem: unable to get local issuer certificate
这个问题是由于没有配置信任的服务器HTTPS验证。默认cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证

解决办法

在windows系统下推荐用git config --global http.sslbackend schannel来解决这个问题

25@YunLeng MINGW64 /d
$ git config --global http.sslbackend schannel

指令详细解释

关于

git config --global http.sslbackend schannel

git config --global http.sslVerify false

这两条指令的解释

这两条 git config 命令用于配置 Git 的全局设置,具体来说是关于 HTTPS 通信的配置。下面是对每个命令的具体解释:

①. git config --global http.sslBackend schannel

  • 作用:这条命令设置了 Git 在进行 HTTPS 请求时使用的 SSL 后端为 schannel。
    • schannel: 这是 Windows 操作系统内置的安全支持提供者(Security Support Provider, SSP)。当 Git 需要进行安全的 HTTPS 通信时,它将使用 Windows 的 schannel 而不是 OpenSSL。这在某些情况下可能有助于提高性能或解决与 OpenSSL 相关的问题。
  • 适用场景: 主要适用于 Windows 用户,尤其是在遇到与 OpenSSL 相关的问题时,切换到 schannel 可能会解决问题。

②. git config --global http.sslVerify false

  • 作用: 这条命令关闭了 Git 在进行 HTTPS 请求时的 SSL 证书验证。

    • false: 设置为 false 表示 Git 不会检查服务器提供的 SSL 证书的有效性。这意味着即使服务器的证书无效或自签名,Git 也会接受该连接。
  • 适用场景: 通常用于开发环境或测试环境中,当服务器使用自签名证书时,可以避免每次请求时出现证书验证失败的错误。但是,在生产环境中强烈建议保持 SSL 证书验证开启,因为关闭验证会使你容易受到中间人攻击等安全威胁。
    注意事项
  • 安全性: 关闭 SSL 证书验证 (http.sslVerify false) 会降低安全性,因为它允许 Git 接受任何 SSL 证书,包括那些可能是恶意的证书。因此,除非你完全信任目标服务器,否则不建议在生产环境中使用此设置。
    兼容性:schannel 仅在 Windows 上可用。如果你在其他操作系统(如 Linux 或 macOS)上使用 Git,这条命令将不起作用。