Jetty의 ProxyServlet을 HTTP 프록시로 사용하고 있습니다.SSL을 지원하는 Jetty ProxyServlet
나는 서버를 시작하고 파이어 폭스에 양말 프록시를 추가 한 후 아무 문제없이 프록시를 통해 웹 사이트에 액세스 할 수 있습니다.
문제는 프록시를 통해 HTTPS 웹 사이트에 액세스하려고 할 때입니다. Firefox에서 "서버를 찾을 수 없음"오류가 표시되고 디버깅하는 동안 Java 코드에서 아무 것도 나타나지 않습니다.
여기 Jetty에 SSL 지원을 추가하기 위해 뭔가가 누락 되었습니까?
다음은 코드의 일부 :
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);
}
}
새 SslContextFactory()를 직접 전달하면 HttpClient 생성자가 적절한 xml 구성 파일 없이는 작동하지 않습니다. setTrustAll (true) 또는 새로운 SslContextFactory (true)를 사용하면 별도의 구성없이 작동합니다. 하지만 모든 인증서를 맹목적으로 신뢰할 수 있으므로 심각한 보안 결함입니다. –