0

我试图让服务器(用java编写)在访问时重定向到HTTPS url(url永远不会改变)。如果我用

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();
    }
4

2 回答 2

1

您作为主机传递的参数factory.createSocket(host,port)不能在其前面添加协议。它应该只是google.com.

原因是 Java 将采用该host参数并将其作为输入传递给 DNS 查找。如果你host https://google.com在命令行上输入,你会遇到类似的失败。

于 2013-11-21T01:12:59.630 回答
0

这里,它说这是一个错误,并在一些版本后得到解决

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

于 2018-10-16T14:39:22.570 回答