当前位置: 首页 > 知识库问答 >
问题:

带有Netty框架的Java服务器与带有dotnetasyncsocket的C#客户端之间的SSL握手

邓欣可
2023-03-14

客户端可以从服务器接收带有remotecertificatechain错误的证书,但是java服务器抛出一个错误空证书链。

我在java中传递了keystore,而对C#客户机使用.crt证书。我已将客户端证书导入服务器证书。

我注意到,在握手过程中,当java服务器访问GetAccepteDissuers时,java netty servers抛出一个ExceptionCatted:

WARNING: Unexpected exception from downstream.
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: null cert chain
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:262)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:131)
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334)
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:497)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:465)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:359)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)....

知道为什么会这样吗?有什么解决这个的建议吗?:(

共有1个答案

邢飞鸿
2023-03-14

回答我自己的问题,结果是代码没有问题!它具有客户端上的自签名证书。我使用java的keytool制作了自签名证书,但当我在C#客户端使用DotNetAsyncSocket时,它就不起作用了。所以我所做的就是在http://cert.startcom.org/上获得一个由CA签署的证书,这是免费的。

 类似资料:
  • 我正在使用T.Rob的建议调试Websphere MQ服务器和客户机之间的SSL错误,并需要帮助理解SSL握手(SSL连接到MQ使用。NET MQ客户机SSLv3?)。 我的WMQ7.5客户机应用程序是C代码,使用密钥库(.kdb)。利用WebSphere管理员提供的CHLTAB。WMQ服务器运行Java,通道是用相互身份验证定义的。 本文指出,在SSL/TLS握手中,服务器总是发送其公共证书以响

  • 我有一个来自http工具包的Websocket连接(Clojure,它工作得很好)。我从客户端发送ping以确保我们仍然保持连接,并且在那里一切正常。我的问题是,在这种情况下,人们是否会从服务器ping客户端? 我试图设置一些东西,如果我没有得到响应,就从服务器上删除频道,但是设置定时进程和改变状态来跟踪乒乓周期不是很方便,所以它变得有点难看。然后我就想,服务器能处理几十万个同时连接,我是不是就应

  • 你好,我写了一个非常简单的ZMQ服务器和客户端应用程序。它在我的本地机器上运行良好,如果我在AWS(同一个安全组)内运行这两个应用程序,它也运行良好。我已经尝试在AWS安全组中打开正确的端口(入站和出站)。我甚至向任何端口/地址上的所有流量开放了它们。但是我在客户端上收不到发布的消息。 我的客户端代码如下所示 我的服务器端代码如下所示 在客户端应用程序命令行中,我尝试传递正确格式为“TCP://p

  • 似乎服务器拒绝了wireshark输出中的tls协商,但我从代码中看不出原因。它是基于工作的代码,只是它被否决了,因此我用新的API更新。代码是开始。需要使用真实的证书。有人知道为什么服务器发送tcp FIN,ack吗? 我有以下服务器代码: 23 16.856111 sonymobi_7f:55:af intelcor_25:1d:fc ARP 42 10.1.10.100在84:c7:ea:7

  • 问题内容: 我在Node.js中有一个使用Expressjs和Handlebars作为模板引擎的应用程序。 Expressjs使用布局,然后呈现视图。布局(layout.hbs)如下所示: 在当您访问路径被替换服务器端的node.js内。例如: 将标记替换为index.hbs的内容。 现在,在客户端上,我正在使用Backbone.js,并希望对通过Backbone控制的视图使用Handlebars

  • 我有一个带sokjs套接字的节点应用程序。 一些HTML/JS客户端使用stomp over sock JS,但我不明白订阅是如何工作的: 客户端已连接,事件已记录,但范围为$scope。从不打电话通知。如何配置主题订阅? 编辑: 请注意,我一定清楚。 我使用sockjs模块作为websocket服务器。 没有太多的配置: