【问题标题】:Java HTTPS Proxy/Redirect ServerJava HTTPS 代理/重定向服务器
【发布时间】:2013-11-21 01:09:39
【问题描述】:

我试图让服务器(用 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();
    }

【问题讨论】:

    标签: java sockets ssl https proxy-server


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!让它连接套接字和流,但由于某种原因它没有显示网站并开始下载一个空文件......是时候进行更多调试了。
    • @sko 很高兴听到这个消息!如果我的回答对您有所帮助,请考虑接受它...这样做有助于激励人们继续回答问题。 :)
    • 更多:不要使用 IP 地址。请参阅 java 错误:bugs.openjdk.java.net/browse/JDK-8133196
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-23
      • 2019-12-13
      • 2013-04-02
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      相关资源
      最近更新 更多