sockets - 我尝试使用 s_client (openssl) 和 javax.net.ssl 包连接到加密套接字
问题描述
我尝试使用 s_client (openssl) 和 javax.net.ssl 包连接到加密套接字。
s_client 可以工作,但可能不适用于非 root 的 android,这就是为什么我尝试了 javax.net.ssl 包但我收到以下错误:
java.net.SocketException:套接字已关闭或损坏
另外,什么是“NaiveTrustManager()”?( https://github.com/maruohon/JavaIRC )
package SSLSocketClient;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
public class SSLSocketClient{
public static void main(String[] args) {
SSLSocketFactory f =
(SSLSocketFactory)SSLSocketFactory.getDefault();
try {
SSLSocket s =
(SSLSocket) f.createSocket("localhost", 6697);
s.startHandshake();
BufferedReader reader = new BufferedReader (new
InputStreamReader(s.getInputStream()));
BufferedWriter writer = new BufferedWriter(new
OutputStreamWriter(s.getOutputStream()));
BufferedReader in = new BufferedReader(
new InputStreamReader(
s.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
s.close();
} catch (IOException e) {
System.err.println(e.toString());
}
}
解决方案
我通过接受 Java 中的自签名 SSL 证书解决了这个问题。
推荐阅读
- python - tkinter 在类之间共享实例变量
- reactjs - 如何使用 React Native 中的事件侦听器和挂钩检查是否按下/按住某个键?
- python - 在 Python 中异步运行函数的多个变体
- python - 如何让这个 python GUI 运行这个可执行文件?
- python - 雪花连接器上传疑难解答,其中一些表正在上传 0 行,即使它们是非空的
- r - 错误:“gconcord”的包或命名空间加载失败
- while-loop - 在 Racket 的解释器中实现 while 循环的问题
- php - 将 _POST 存储到变量中以与页面数据一起使用
- php - PHP XML XPath,需要引用所有节点树吗?
- python - 如何在python中获得分组条形图之间的间距