gpt4 book ai didi

ssl - curl 请求 TLS 警报,Windows WSL 中的未知 CA

转载 作者:行者123 更新时间:2023-12-04 22:41:59 24 4
gpt4 key购买 nike

在 wsl 2 窗口中运行此命令会提供以下输出。
任何人都可以解释为什么 TLSv1.3 和 TLSv1.2 IN 和 OUT 混合存在,这是否是它无法获得本地颁发者证书的潜在原因。
Windows 主机操作系统是 Enterprise
我已经安装了 ca-certificates 并运行了 update-ca-certificates

curl -v https://google.com:443/
* Trying 172.217.169.78...
* TCP_NODELAY set
* Connected to google.com (172.217.169.78) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

最佳答案

您是否使用受监控或“保护”的网络连接,例如防病毒软件,例如由企业、组织或学校提供的网络连接?如果是这样,您可能会从拦截器中获得假证书/链。
试试 openssl s_client -connect google.com:443看看s:i: Certificate chain 下的行. (今天的许多主机需要 SNI 才能正确响应,如果您的 OpenSSL 低于 1.1.1,您需要添加 -servername x 以提供 SNI,但 google 不是其中之一,无论如何,因为您的 curl 至少尝试 1.3 它不能OpenSSL 低于 1.1.1。)
或者,如果从主机 Windows 上的 Chrome、Edge 或 IE(但可能不是 Firefox)连接正常,双击挂锁并查看证书链,看看它是否通向 GlobalSign Root CA(就像真正的谷歌那样)或其他东西其他(例如 BlueCoat);如果后者,拦截器的根证书安装在您的主机 Windows 商店中,而不是 WSL 系统中。您可以从主机浏览器导出证书并将其放入文件中,然后手动使用 curl --cacert $file ,或将其导入 WSL 系统的信任库,但这取决于您在 WSL 中运行的系统,您没有说。
补充:日志信息中 TLS 1.3 和 1.2 的混合可能是因为 1.3 使用与 1.2 相同的记录头版本作为转换黑客,扩展名表明它仅在两个 Hello 消息中确实是 1.3,并且回调可能不处理这个。

关于ssl - curl 请求 TLS 警报,Windows WSL 中的未知 CA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69369284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com