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

Netty 4.1如何从服务器端重新启动SSL会话/握手(hello请求)

公良天逸
2023-03-14

我是Netty框架的新手,我不知道如何从服务器端发送OpenSSL“你好请求”。

Netty SSlHandler:

重新启动会话

要重新启动SSL会话,您必须从ChannelPipeline中删除现有的已关闭SslHandler,将带有新SSLEngine的新SslHandler插入管道,并按照第一节中的说明启动握手过程。

我有基于史努比服务器示例的HTTPS服务器,但是当我尝试重新启动ssl时,没有任何工作按预期。

e. g.

// reset ssl session from server's HttpHandler 
SslContext sslCtx = null;
SelfSignedCertificate selfSignedCert;
try {
    selfSignedCert = new SelfSignedCertificate();
    sslCtx = SslContextBuilder.forServer(selfSignedCert.certificate(), selfSignedCert.privateKey()).sslProvider(SslProvider.JDK).build();
    } catch (CertificateException | SSLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

((SslHandler) ctx.pipeline().get("ssl")).close(ctx, ctx.newPromise());

if (ctx.pipeline().remove("ssl") != null && sslCtx != null) {
   ctx.pipeline().addFirst("sslNew", sslCtx.newHandler(ctx.channel().alloc()));
}

我需要重新启动会话,因为这是重启握手的独特方式,如netty.io文档中所述。

然后我需要问:有没有办法从netty https窥探服务器请求客户端问候?

OpenSSL有能力从服务器向客户端发送helloRequest并等待“客户端你好”,但怎么做呢?

共有1个答案

田曜瑞
2023-03-14

您可以随时开始新的握手,当然不需要新的< code>SSLEngine。

然而这要么

  • 更新当前会话,至少通过建立新的会话密钥,或者可能更改密码套件或获取对等证书,或者
  • 如果使旧会话失效,则创建新会话。

它不会“重新启动”会话。没有这样的操作。

 类似资料:
  • 问题内容: 我有使用Express和Connect中间件的功能齐全的用户注册/身份验证系统。 唯一的问题是,每次执行服务器重新启动时,会话都会中断。 https://github.com/remy/nodemon-并且nodemon每次检测到文件更改时都会重新启动node.js。 如何进行持续性会话? 问题答案: 就像您的代码告诉您正在使用MemoryStore一样。这是易失的,重启后会清除。我建

  • 问题内容: 我有一个Express 4应用程序设置来进行会话。 当我提交表单时,它将user_id保存到req.session中。但是,当我重新启动服务器时,会话消失了。 为什么不持续?我是否缺少某些配置? 问题答案: express-session的默认会话存储是MemoryStore,顾名思义,该存储仅将会话存储在内存中。如果需要持久性,则有许多可用于Express的会话存储。一些例子: co

  • 在每个服务器上创建x会话后,我有2个不同的tomcat服务器(不同的机器),当我重新启动两个服务器时,其中一个保留会话,而另一个没有, -知道为什么吗?-我想和两只雄猫保持通话 谢谢

  • gRPC新手,找不到任何关于如何在服务器端启用SSL的例子。我使用openssl生成了一个密钥对,但是它报错说私钥无效。 这是我的代码

  • 如有任何帮助,我们将不胜感激。 PS:我使用的是java7