netty socket ssl信任所有证书

蒲锦_up 2017-11-17 07:03:26
客户端发起跟服务端的连接。

创建Ctx,不使用证书,默认信任所有。
public class SslContextFactory {

private static final SSLContext SERVER_CONTEXT;

static {
try {
KeyManager[] keyManagers = new KeyManager[]{};
KeyManager keyManager = new KeyManager() {

};
keyManagers[0] = keyManager;
TrustManager[] trustAllCerts = new TrustManager[]{};
TrustManager tm = new TrustManager() {
};
trustAllCerts[0] = tm;

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(keyManagers, trustAllCerts, null);
SERVER_CONTEXT = sc;
} catch (Exception e) {
throw new Error("Failed to initialize the client-side SSLContext", e);
}
}

public static SSLContext getServerContext() {
return SERVER_CONTEXT;
}
}


在ChannelInitializer中导入证书信息。
   @Override
protected void initChannel(SocketChannel ch) throws Exception {
// SSLContext clientContext = SSLContext.getDefault();
SSLContext clientContext = SslContextFactory.getServerContext();
//SSLEngine engine = clientContext.createSSLEngine();
SSLEngine engine = clientContext.createSSLEngine(socketAddress, socketPort);
engine.setUseClientMode(true);
engine.setNeedClientAuth(false);
ch.pipeline().addLast(new SslHandler(engine));


试了很久,还是没有连接失败了。哪位大神指点下啊 谢谢!
...全文
515 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

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

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