Używam ProxyServlet Jetty jako proxy HTTP.Jetty ProxyServlet z obsługą SSL
Po uruchomieniu serwera i dodaniu skarpetki proxy w firefox, mogę bez problemu uzyskać dostęp do stron internetowych za pośrednictwem serwera proxy.
Problem polega na tym, że próbuję uzyskać dostęp do witryny HTTPs za pośrednictwem serwera proxy. Firefox wyświetla błąd "Nie znaleziono serwera", a podczas debugowania nic nie dzieje się w moim kodzie Java.
Czy brakuje mi tutaj czegoś, aby dodać obsługę SSL do Jetty?
Oto część kodu:
Server httpProxy = new Server(8087);
ServletHandler servletHandler = new ServletHandler();
servletHandler.addServletWithMapping(new ServletHolder(new TunnelProxyServlet()), "/*");
httpProxy.setHandler(servletHandler);
try {
httpProxy.start();
} catch (Exception ex) {
Logger.getLogger(HttpProxy.class.getName()).log(Level.SEVERE, null, ex);
}
public class TunnelProxyServlet extends ProxyServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("init done !");
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("got a request !");
super.service(req, res);
}
}
Przekazanie nowego SslContextFactory() bezpośrednio informacji konstruktora HttpClient nie będzie działać bez odpowiednich plików konfiguracyjnych xml. Użycie setTrustAll (true) lub new SslContextFactory (true) zadziała bez dodatkowej konfiguracji. ALE, jest to poważna luka w zabezpieczeniach, ponieważ będzie ślepo ufać wszystkim certyfikatom. –