Java等同于.NET SSLStream

时间:2014-11-29 15:14:32

标签: java ssl

我正在尝试编写自定义代理服务器来处理https连接。 Java中是否存在与.NET SSLStream等效的内容?

1 个答案:

答案 0 :(得分:1)

您可能需要使用SSLSocketFactory来创建SSL ServerSocket。相关的服务器套接字将负责(具有特定/实现的inout流)数据加密和相关进程。
您可以将SSL设置指定为系统属性,如下所示。

System.setProperty("javax.net.ssl.trustStore", "<<path of your key>>");
System.setProperty("javax.net.ssl.trustStorePassword", "<<store passwd if specified>>");
//System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
System.setProperty("javax.net.debug", "all");

稍后,您需要初始化ServerSocket,如下所示

int port=3128,backlog=32;
ServerSocket ss=SSLServerSocketFactory.getDefault().createServerSocket(port, backlog, InetAddress.getLoopbackAddress());

其余工作就像普通(非ssl)流程一样,只是听取请求并继续进行。

while(ss.isBound()){
Socket s=ss.accept();
InputStram in=s.getInputStream();
OutputStream os=s.getOutputStream();
//.....rest of teh work
}