[英]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.