簡體   English   中英

Android的代理服務器-處理HTTPS

[英]Proxy Server for Android - Handling HTTPS

我已經為Android構建了可捕獲所有HTTP請求的代理服務器。 我還收到我不感興趣的HTTPS,但我只想通過它們。

根據http://muffin.doit.org/docs/rfc/tunneling_ssl.html的說明,當通過代理進行SSL連接時,HTTP方法為CONNECT。 為此,我將響應發送給客戶端:

            if (request.startsWith("CONNECT")) {
            proxyOutputStream.write(("HTTP/1.1 200 Connection established" + CRLF + CRLF).getBytes());
            proxyOutputStream.flush();

然后啟用雙向連接:

                DirectionalConnectionHandler client = new DirectionalConnectionHandler(mProxySocket, mOutsideSocket);
            client.start();
            DirectionalConnectionHandler server = new DirectionalConnectionHandler(mOutsideSocket, mProxySocket);
            server.start();

但是,“連接已建立”在瀏覽器中導致“ ERR_SSL_PROTOCOL_ERROR”錯誤。 如果我不發送“連接已建立”響應,則錯誤為ERR_TUNNEL_CONNECTION_FAILED

如何啟用正常的HTTPS連接並且不破壞瀏覽器?

您不需要響應HTTP/1.1 200 Connection established以代理方式HTTP/1.1 200 Connection established

刪除以下代碼,

proxyOutputStream.write(("HTTP/1.1 200 Connection established" + CRLF + CRLF).getBytes());
proxyOutputStream.flush();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM