2011-06-18 8 views
0

ここのiモードコード!私がfirefoxからhttpリクエストを送信すると正常に動作します!しかし、私はこれでhttps Firefoxの返信を試みます:カスタムプロキシサーバーのSSL(https)エラー

mail.yahoo.comへの接続中にエラーが発生しました。 SSLが不明なコンテンツタイプのレコードを受信しました。 (エラーコード:ssl_error_rx_unknown_record_type)

私はそれが正常にhttpsに接続し、バイトをreciveが、それはそれは拒否されますソケットにそれを渡したときにコードをデバッグ:

Tehre 8080上のリスナーだ、と私のコード次のとおりです。(具体的に「公式」man-in-the-middle攻撃をするために設計されていない限り)

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); 
      System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 
      CookieContainer cookie = new CookieContainer(); 
      if (strClientConnection.Contains("443")) { 
       strClientConnection = "https://" + strClientConnection.Replace(":443",""); 
      }; 
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strClientConnection); 
      request.CookieContainer = cookie; 
      request.KeepAlive = true; 
      request.Timeout = 120000; 
      request.AllowAutoRedirect = true; 
      request.ReadWriteTimeout = 120000; 
      request.Method = "POST"; 
      { 
       using (HttpWebResponse myWebResponse = (HttpWebResponse)request.GetResponse()) 
       { 
        bool isSuccess = (int)myWebResponse.StatusCode < 299 && (int)myWebResponse.StatusCode >= 200; 
        if (isSuccess) 
        { 
         using (Stream reader = myWebResponse.GetResponseStream()) 
         { 
          int BytesRead = 0; 
          Byte[] Buffer = new Byte[32]; 
          int BytesSent = 0; 
          BytesRead = reader.Read(Buffer, 0, 32); 

          while (BytesRead != 0) 
          { 
           m_sockClient.Send(Buffer, BytesRead, 0); 
           BytesSent += BytesRead; 
           BytesRead = reader.Read(Buffer, 0, 32); 
          } 
         } 
        } 
       } 
      } 
+0

あなたの証明書の修理のような音がします。非公開鍵の再割り当て方法については、certutil.exeを参照してください。 –

答えて

4

HTTPプロキシは、通常、HTTPS要求自体がありません。

HTTPクライアント(ブラウザを含む)は、HTTP CONNECTメソッドを使用して、HTTPS要求(実質的にSSL/TLS)トンネルをターゲットHTTPSサーバーに転送するようにプロキシサーバーに指示します。

プロキシでCONNECTリクエストを受け取った場合(CONNECT host.example.org:443など)は、直接TCP接続をhost.example.org:443にして、その内容(両方向)を変更せずにブラウザに中継する必要があります。

関連する問題