Java HTTPS代理/重定向服务器

时间:2013-11-21 01:09:39

标签: java sockets ssl https proxy-server

我正在尝试在访问时将服务器(用java编写)重定向到HTTPS网址(网址永远不会更改)。如果我用

编译代码
java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=password ProxyServer

并输入地址,端口和本地端口

https://google.com 443 5000

尝试访问

localhost:5000

在我的机器上,然后我收到错误

java.net.UnknownHostException: https://google.com

调试之后,我很确定当我尝试创建SSLSocket(secureServer)时,它会在此代码块中中断。

    SSLSocket secureServer;
    try { 
        SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
        secureServer = (SSLSocket) factory.createSocket(host, port);
        from_server = secureServer.getInputStream();
        to_server = secureServer.getOutputStream();
    }

2 个答案:

答案 0 :(得分:1)

作为主持人传递给factory.createSocket(host,port)的参数必须没有前面的协议。它应该只是google.com

原因是Java将采用host参数并将其作为输入传递给DNS查找。如果您在命令行中键入host https://google.com,则会出现类似的失败。

答案 1 :(得分:0)

here中,它表示这是一个错误,并且在发布某些版本后已解决

在jdk 6服务器中,我们得到相同的异常,但是在我们的jdk 8服务器中,没有异常