próbuję wdrożyć serwer SSL w-systemie, używając FiddlerCore:SSL otrzymał rekord, który przekroczył maksymalną dozwoloną długość podczas modyfikowania żądania z Skrzypek
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fiddlerCoreTest
{
using System.IO;
using System.Threading;
using Fiddler;
class Program
{
static Proxy oSecureEndpoint;
static string sSecureEndpointHostname = "localhost";
static int iSecureEndpointPort = 7777;
static void Main(string[] args)
{
//var tt = Fiddler.CertMaker.GetRootCertificate().GetRawCertData();
//File.WriteAllBytes("root.crt",tt);
Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
{
oS.bBufferResponse = false;
if ((oS.hostname == sSecureEndpointHostname)&&oS.port==7777)
{
oS.utilCreateResponseAndBypassServer();
oS.oResponse.headers.HTTPResponseStatus = "200 Ok";
oS.oResponse["Content-Type"] = "text/html; charset=UTF-8";
oS.oResponse["Cache-Control"] = "private, max-age=0";
oS.utilSetResponseBody("<html><body>Request for httpS://" + sSecureEndpointHostname + ":" + iSecureEndpointPort.ToString() + " received. Your request was:<br /><plaintext>" + oS.oRequest.headers.ToString());
}
};
FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default;
oFCSF = (oFCSF & ~FiddlerCoreStartupFlags.RegisterAsSystemProxy);
Fiddler.FiddlerApplication.Startup(8877, oFCSF);
oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname);
if (null != oSecureEndpoint)
{
FiddlerApplication.Log.LogFormat("Created secure end point listening on port {0}, using a HTTPS certificate for '{1}'", iSecureEndpointPort, sSecureEndpointHostname);
}
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
}
w Firefox, GET http://localhost:7777/
działa dobrze, ale kiedy i GET https://localhost:7777/
, raporty firefox następujący błąd:
Dlaczego mam to i jak mogę to naprawić?
AKTUALIZACJA Dzieje się tak tylko wtedy, gdy używam skrzypka jako serwera proxy z firefox. Kiedy usuwam serwer proxy, mogę uzyskać dostęp do https://localhost:7777/
. Chciałbym jednak również móc uzyskać dostęp do https://localhost:7777/
za pośrednictwem proxy
Cofnijmy się trochę. Gdy Fiddler * nie jest * ustawiony jako proxy w Firefoksie, czy możesz odwiedzić https: // localhost: 7777? Jaka jest dokładna wersja Firefoksa, której używasz? Czy punkt krytyczny na utilCreateResponseAndBypassServer kiedykolwiek został trafiony? – EricLaw
Używam ff17.0.1. Kiedy odwiedzam 'https: // localhost: 7777' bez serwera proxy, to działa. 'oS.utilCreateResponseAndBypassServer();' zostaje trafiony, a funkcja zwraca odpowiedź do rdzenia skrzypka. –