运用JSSE建立SSL连接,报Illegal client handshake msg, 1

boyz 2010-11-24 11:24:07
客户端使用SSLSocket,服务端操作SSLEngine建立非阻塞监听,采用keytool产生认证文件。
SSLcontext通过init(KeyManager[] km, TrustManager[] tm, SecureRandom random) 来构建
SSLSocket调用startHandshake()时报错
javax.net.ssl.SSLProtocolException: Illegal client handshake msg, 1
at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Handshaker.java:1003)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:459)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1054)
at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1026)
at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:411)

试了很多办法都不行,密码一定是对的,用户也都导入了,请问这个错误一般是什么原因
还是认证文件的问题么?

求教
...全文
149 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smmi 2010-11-24
  • 打赏
  • 举报
回复
服务器证书导入客户端TrustManager,相反,客户端证书导入服务器TrustManager
boyz 2010-11-24
  • 打赏
  • 举报
回复
UP.............
boyz 2010-11-24
  • 打赏
  • 举报
回复
UPUP.........
boyz 2010-11-24
  • 打赏
  • 举报
回复
UP./..........
boyz 2010-11-24
  • 打赏
  • 举报
回复
希望知道 Illegal client handshake msg, 1
是什么原因引起的
smmi 2010-11-24
  • 打赏
  • 举报
回复

char[] passphrase = "11111111".toCharArray();
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream(".keystore"), passphrase);

TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(keystore);

SSLContext context = SSLContext.getInstance("TLS");
TrustManager[] trustManagers = tmf.getTrustManagers();
context.init(null, trustManagers, null);

SSLSocketFactory sf = context.getSocketFactory();
Socket s = sf.createSocket(HOST, PORT);
boyz 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 smmi 的回复:]
服务器证书导入客户端TrustManager,相反,客户端证书导入服务器TrustManager
[/Quote]
这个都已经做了啊
别人家的老公 2010-11-24
  • 打赏
  • 举报
回复
没搞过 和协议有关吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧