Skip to content

http.schannelCheckRevoke=false ignored when using HTTP proxy in 2.55.0.windows.3 (works in 2.53.0.windows.4) #6439

Description

@FeidongAlbert

Existing issues matching what you're seeing

Git for Windows version

git version 2.55.0.windows.3   # FAILS
git version 2.53.0.windows.4   # WORKS (GitHub Desktop embedded git, same machine, same ~/.gitconfig)

Windows version

Windows 11 (build 26200), x86_64

Details

Setup: http.sslBackend=schannel (system default), global config contains:

[http "https://github.com/"]
    schannelcheckrevoke = false
    proxy = http://127.0.0.1:26561   # local HTTP proxy (CONNECT tunnel), removed later, see below

Symptom (2.55.0.windows.3, clone/fetch through the HTTP proxy):

fatal: unable to access 'https://github.com/USER/REPO.git/':
schannel: next InitializeSecurityContext failed: CRYPT_E_NO_REVOCATION_CHECK (0x80092012)

A/B tests, same machine / same proxy / same ~/.gitconfig:

git build proxy + schannelCheckRevoke=false result
2.55.0.windows.3 (system) yes (global URL-scoped) ❌ CRYPT_E_NO_REVOCATION_CHECK
2.55.0.windows.3 yes (-c http.schannelCheckRevoke=false inline) ❌ same error
2.53.0.windows.4 (Desktop embedded) yes (reads the same ~/.gitconfig) ✅ clone succeeds
2.55.0.windows.3 direct connection, no proxy ✅ clone succeeds

Additional data points:

  • curl --ssl-no-revoke against the same proxy works, so the proxy path itself is functional and the failure is the revocation check that schannelCheckRevoke=false should suppress.
  • The openssl backend through the same proxy fails with unable to get local issuer certificate (proxy path does not send intermediate certs; unrelated to this report but listed for completeness).
  • I also tried CURL_SSL_NO_REVOKE=1 — ignored by git's libcurl, as expected per docs.

Expected: http.schannelCheckRevoke=false should disable the schannel revocation check regardless of proxy usage, per documentation ("Used to enforce or disable certificate revocation checks in cURL when http.sslBackend is set to schannel").

Actual: In 2.55.0.windows.3 the option appears to be ignored on the proxy path (the revocation check runs and fails). The identical configuration works on 2.53.0.windows.4, which suggests a regression introduced between these builds.

Workaround currently in use

Direct connection (no proxy) works on 2.55.0.windows.3, so I pinned the workaround to network topology rather than the config value. Downgrading the standalone installation to 2.53.0.windows.4 also resolves it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions