我正在開發HTTPS代理服務器。它應該是一個控制檯應用程序。我想找一本手冊或範例。我發現很多件或非工作樣品。我嘗試從MSND的SSLStream示例,但未成功。有沒有人有一些經驗或工作的例子?C中的HTTPS代理服務器#
1
A
回答
-1
代碼:
using System;
using System.Text;
using System.Net.Sockets;
using System.Net.Security;
namespace SslTcpClient
{
public class SslTcpClient
{
public static void Main(string[] args)
{
string host = "encrypted.google.com";
string proxy = "127.0.0.1";//host;
int proxyPort = 8888;//443;
byte[] buffer = new byte[2048];
int bytes;
// Connect socket
TcpClient client = new TcpClient(proxy, proxyPort);
NetworkStream stream = client.GetStream();
// Establish Tcp tunnel
byte[] tunnelRequest = Encoding.UTF8.GetBytes(String.Format("CONNECT {0}:443 HTTP/1.1\r\nHost: {0}\r\n\r\n", host));
stream.Write(tunnelRequest , 0, tunnelRequest.Length);
stream.Flush();
// Read response to CONNECT request
// There should be loop that reads multiple packets
bytes = stream.Read(buffer, 0, buffer.Length);
Console.Write(Encoding.UTF8.GetString(buffer, 0, bytes));
// Wrap in SSL stream
SslStream sslStream = new SslStream(stream);
sslStream.AuthenticateAsClient(host);
// Send request
byte[] request = Encoding.UTF8.GetBytes(String.Format("GET https://{0}/ HTTP/1.1\r\nHost: {0}\r\n\r\n", host));
sslStream.Write(request, 0, request.Length);
sslStream.Flush();
// Read response
do
{
bytes = sslStream.Read(buffer, 0, buffer.Length);
Console.Write(Encoding.UTF8.GetString(buffer, 0, bytes));
} while (bytes != 0);
client.Close();
Console.ReadKey();
}
}
}
;)
+4
這似乎不是一個服務器,是嗎? ;) –
3
假設你一個正常的HTTPS代理服務器(而不是MITM代理服務器)後的時候,你不需要任何的SSL/TLS代碼在所有。
它所需要的是能夠解釋HTTP CONNECT
方法和中繼業務原樣向和從在CONNECT
請求(例如CONNECT host.example.org:443
)所使用的主機和端口。
1
相關問題
- 1. node.js中的HTTPS代理服務器
- 2. Android的代理服務器 - 處理HTTPS
- 3. Realt對象服務器的Https代理服務器不工作
- 4. 在C#代理服務器中構建HTTPS支持
- 5. Node.js HTTPS代理服務器不工作
- 6. Apache反向代理到https服務器
- 7. Java HTTPS代理/重定向服務器
- 8. Node.js代理服務器與https支持
- 9. 在node.js中調用https web服務(代理服務器後臺)
- 10. C linux代理服務器
- 11. c中的Internet代理服務器#
- 12. 在Appache之後服務http服務器https代理
- 13. 代理服務器,它可以處理http和https請求 - java
- 14. 多線程http/https中間代理服務器,Socket性能
- 15. WCF服務沒有在C#中使用代理服務器
- 16. 我的自定義代理服務器上的SSL(https)錯誤
- 17. 如何製作代理服務器我將作品編寫爲HTTPS服務器?
- 18. 如何使Axis 2代理服務器屬性知道轉發代理服務器的HTTPS
- 19. C#插座:通過代理服務器連接到服務器
- 20. 通過服務器/代理服務器
- 21. C#webclient和代理服務器
- 22. https在代理服務器上的asp.net網站?
- 23. 如何通過Hyper的代理服務器訪問HTTPS網站?
- 24. 創建一個接受HTTPS的Java代理服務器
- 25. 的NodeJS - HTTPS/HTTP代理服務器設置
- 26. 通過開放代理服務器的HTTPS請求
- 27. 在初始化/代理服務器/代理服務器/
- 28. 我該如何正確代理到另一個https服務器的https請求
- 29. C#中的Twitter服務代理#
- 30. HTTPS WSO2服務器
顯示你當前的代碼,而當前的問題,你會得到更好的答案 – BugFinder
爲什麼那麼多那麼用戶私刑新手?這對我來說似乎是一個相關的問題,答案可以在50行左右給出,但很難找到,不需要downvoting。 –
@StevendeSalas我同意你的意見。他們在世界上一直都在鼓勵改變錯誤的方向。 – Mukus