私はJettyのProxyServletをHTTPプロキシとして使用しています。SSLをサポートするJetty ProxyServlet
私はサーバーを起動し、firefoxでsocksプロキシを追加した後、問題なくプロキシ経由でWebサイトにアクセスできます。
問題は、プロキシを介してHTTPS Webサイトにアクセスしようとするときです。 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)を使用することにより、特別な設定なしで動作します。しかし、それは盲目的にすべての証明書を信頼するため、大きなセキュリティ上の欠陥です。 –