Sockets 通过HTTPS访问代理不起作用

Sockets 通过HTTPS访问代理不起作用,sockets,ssl,https,proxy,webserver,Sockets,Ssl,Https,Proxy,Webserver,创建了webserverhttp端口80,https:443和代理服务器HTTP 8080,https:8081 当我通过https访问代理时,我发现了一个问题,比如 https://xyz:8081/ wireshark显示clientfireforx或chrome正在HTTP数据包中发送证书数据,我看到了证书文本 你知道会出什么问题吗?浏览器显示未收到任何数据 如果TLS会话已建立https Web服务器如果我尝试访问https代理,是否会创建另一个TLS会话 我创建了SSL套接字,就像

创建了webserverhttp端口80,https:443和代理服务器HTTP 8080,https:8081 当我通过https访问代理时,我发现了一个问题,比如

https://xyz:8081/
wireshark显示clientfireforx或chrome正在HTTP数据包中发送证书数据,我看到了证书文本

你知道会出什么问题吗?浏览器显示未收到任何数据 如果TLS会话已建立https Web服务器如果我尝试访问https代理,是否会创建另一个TLS会话

我创建了SSL套接字,就像 ctx_init 将套接字置于select上,并在我获得 然后你读了吗

注意:Rest对Web服务器的所有访问,如http/https或对代理服务器的http,都可以正常工作

更新:问题是客户端正在发送分段HTTP请求 所以对于GET请求,它是由客户机这样发送的 第1包是通用电气 数据包2是rest T…\r\n\r\n
所以在代码中,我必须收集直到收到完整的HTTP数据包为止

您的HTTPS代理做什么?HTTPS连接的代理是通过在代理中支持CONNECT动词并构建不透明隧道来完成的。这与HTTP代理完全不同。与HTTP代理相同。是的,我支持连接,即如果我接收到请求,我先做了一个连接,然后只是传递数据。问题是我在https代理的SSL_读取功能中根本没有收到任何数据包…rcv_计数即将为0有时我看到EPIPE或EWOULDBLOCK错误。似乎你们不明白https代理是如何工作的。它与HTTP代理不同,这就是它不能像您期望的那样工作的原因。您需要阅读HTTPS代理是如何制作的。请推荐一些好的文档来阅读HTTPS代理,非常感谢!请查看上的介绍性文章