-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Connection reset by peer (os error 104) behind corporate proxy (zscaler) #12174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I believe this is due to the changes in Python 3.13 which deprecates support for SSL_CERT_FILE. It's quite annoying. Here's some deepresearch from chatgpt on the change |
This may be a ZSCALER bug, rather than UV's problem. |
(@olliepro we don't use Python's networking stack) |
per rustls/rustls-native-certs#16 I'm surprised setting the cert file doesn't work? |
@danpf do you have similar issues under python 3.12? I have a similar ZScaler setup and I'm unable to replicate the issue with a fresh python download. Could be your ZScaler setup? Since you can download it without the ssl verification, its probably not that zscaler is blocking the download. Are you able to curl the file from github without disabling ssl verification? That might confirm the scope of the problem, and whether it's limited to uv. |
@zanieb I haven't really gotten anywhere with this, with curl and requests I can set the env var to a directory, I don't see any references to ssl_cert_dir in the source - I see references to ssl_cert_file though. is it supported implicitly through reqwest? This could also be a problem with my company's network stack so I've been running it up the IT chain but that takes a bit of time. @olliepro I see it with python 3.11 and 3.12 but the calls are made on the rust end so I'm not sure it would make much of a difference. curl with the correct ssl_cert_dir path works as intended. EDIT:
|
Thanks for pulling up that ref. It sounds like you'll need to request it upstream or find another way to set the certificates? We could consider a different TLS package too, but this one is fairly fundamental. |
Does it work for an older version of python? this looks more like the change in create_default_context() |
Summary
I'm not really sure this is a bug but I'm having a heck of a time getting uv to work behind Zscaler.
the only thing that has worked is to use:
but I'd like to not just use allow-insecure-host everywhere. I must be missing something - if anyone has any hints or cli utilities for me to poke at this problem with I'd greatly appreciate it. -- I will be responding to this issue with any updates I have or things I've tried if that's alright.
Attempts and logs
/etc/pki/ca-trust/source/anchors/ZscalerRootCA.crt exists and i ran all variations of update-ca-trust I could find.
using the SSL_CERT_FILE=/etc/pki/ca-trust/source/anchors/ZscalerRootCA.crt as an environment variable gives me:
Without
--native-tls
logs with RUST_LOG=trace and --native-tls
Platform
RHEL
Version
0.6.4
Python version
3.12.3
The text was updated successfully, but these errors were encountered: