Hello,
in my company we are using Cloudflare Gateway with WARP.
If I try to access my websites hosted on Cloudflare via browser or via Invoke-WebRequest, everything is fine.
If I use a tool like curl, instead, it fails with an error on the Certificate revocation:
C:\Users\mam>curl “https://mydomainexample.com” -v
- Trying abcd:1200::4567:a1b2:443…
- Connected to mydomainexample.com (abcd:1200::4567:a1b2) port 443 (#0)
- schannel: disabled automatic use of client certificate
- schannel: ALPN, offering http/1.1
- schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
- Closing connection 0
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
It looks the issue is not related to the certificate of the website itself (issued by “Gateway Intermediate ECC Certificate Authority”), but to the fact that this CA doesn’t contain a CRL.
In fact, you can see that curl is able to connect to my website (connected), but it’s not able to check the revocation for the certificate. IMO, this happens because the “Gateway Intermediate ECC Certificate Authority” doesn’t define any CRL, which makes curl unable to perform such check.
In order to make it work, I’m forced to use the –ssl-no-revoke option:
C:\Users\mam>curl “https://mydomainexample.com” --ssl-no-revoke -v
- Trying abcd:1200::4567:a1b2:443…
- Connected to mydomainexample.com (abcd:1200::4567:a1b2) port 443 (#0)
- schannel: disabled automatic use of client certificate
- schannel: ALPN, offering http/1.1
- schannel: ALPN, server accepted to use http/1.1
GET / HTTP/1.1
Host: mydomainexample.com
User-Agent: curl/7.79.1
Accept: /
- schannel: failed to decrypt data, need more data
- Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Thu, 27 Jan 2022 14:36:15 GMT
< Content-Type: text/html; charset=utf-8
This is quite annoying, as some tools we use are failing because of this and it’d be quite impracticale to troubleshoot everyone one of them and find a workaround for that…
Any hints?
Thanks,
Marco