0
我在Tomcat下開發了一個代理servlet,servlet從客戶端收到請求並轉發到另一個代理服務器,在轉發之前,它將使用代理服務器進行身份驗證。現在它可以很好地處理HTTP請求,但無法接收HTTPS請求。所以這個代理servlet並不完美。仍然無法處理代理servlet中的HTTPS請求
我已搜查谷歌在這個論壇看了很多帖子,ESP這樣一句:
Developing a proxy servlet that can handle HTTPS connections
我配置Tomcat的監聽端口8443,如下所示:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" redirectPort="8080"/>
我在eclipse中本地部署了servlet,並且我將瀏覽器代理設置爲127.0.0.1:8080,但繞過localhost。
當我瀏覽https:// localhost:8443 /時,我可以看到servlet日誌中收到的https請求(通過調用request.getScheme()和request.isSecure())。但是,如果我瀏覽https://www.google.com,它無法連接,我的代理servlet沒有收到請求。
我也覆蓋service()方法並打印request.getMethod(),但仍無法捕獲HTTPS請求。
我該怎麼辦?
我想要的只是獲取HTTPS請求並添加身份驗證並轉發到下一個代理服務器。
謝謝
爲什麼要實施中間人攻擊? – gigadot
所以很明顯,這是行不通的。如果使用代理攔截並切換中間的證書,則無法驗證SSL證書。這是一個安全限制。 – gigadot
如果你只是想要一個代理服務器,你應該試試這個http://www.servletsuite.com/servlets/httpproxy.htm – gigadot