我需要知道如何实施 TSL (https)?
What I need to know how to implement the TSL (https)?
我按照 Java 中 W3C 的规范实现了 HTTP 协议。但是我无法处理 https 连接。
就 HTTP 协议而言,HTTPs 没有什么特别之处。您所需要的只是open server SSL socket,一旦新连接到来,获取套接字的输入流,您就可以像 HTTP 一样使用它(可能在包装到缓冲输入流之后)。
int port = 443;
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);
Socket socket = ssocket.accept();
编辑:您可能缺少服务器密钥库。请尝试按照本教程进行操作:http://stilius.net/java/java_ssl.php 即
生成服务器密钥库:
keytool -genkey -keystore mySrvKeystore -keyalg RSA
运行 您的服务器使用适当的参数,例如:
java-Djavax.net.ssl.keyStore=mySrvKeystore-Djavax.net.ssl.keyStore密码=123456 EchoServer
我按照 Java 中 W3C 的规范实现了 HTTP 协议。但是我无法处理 https 连接。
就 HTTP 协议而言,HTTPs 没有什么特别之处。您所需要的只是open server SSL socket,一旦新连接到来,获取套接字的输入流,您就可以像 HTTP 一样使用它(可能在包装到缓冲输入流之后)。
int port = 443;
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);
Socket socket = ssocket.accept();
编辑:您可能缺少服务器密钥库。请尝试按照本教程进行操作:http://stilius.net/java/java_ssl.php 即
生成服务器密钥库:
keytool -genkey -keystore mySrvKeystore -keyalg RSA
运行 您的服务器使用适当的参数,例如:
java-Djavax.net.ssl.keyStore=mySrvKeystore-Djavax.net.ssl.keyStore密码=123456 EchoServer