当前位置: 首页 > 网络应用技术

Netty系列:使用SSL / TLS加密Netty程序

时间:2023-03-09 13:55:59 网络应用技术

  数据隐私是时代背景下的一个非常关注的问题。作为开发人员,我们需要准备解决此问题。至少我们需要熟悉加密协议SSL和TLS上方的其他协议,以实现数据安全性。作为HTTPS网站的用户,您很安全。协议广泛不基于HTTP应用程序,例如安全SMTP(SMTP)电子邮件服务,甚至是关系数据库系统。

  为了支持SSL/TLS,Java提供了API类,并使解密和加密相对简单。Netty使用名为SSLHandler的ChannelHandler实现它的API。有一个内部的SSLENGINE用于实际工作。

  SSL的全名是安全套接字层,这是一个收敛层,由Netscape设计用于主要用于Web的安全传输协议。目的是为网络通信提供机密性,认证和数据完整性。SSL已成为互联网机密通信的工业标准。

  SSL/TLS位于TCP层和应用层之间。细节如下图所示:

  SSLHANDLER从ByteTomersSagedeCoder继承并实现ChannelOutBoundHandler接口。因此,可以像其他ChannelHandler一样将其添加到ChannelPipeline。

  以下是将ChannelInitializer添加到ChannelPipeline中的示例。

  在大多数情况下,SSLHANDLER将成为ChannelPipeline中的第一个ChannelHandler。这将确保所有其他ChannelHandler在加密前都适用于其逻辑,以使其更改是安全的。

  如下表所示,SSLHandler有许多有用的方法。

  例如,验证了握手的两端并达成了加密方法。您可以配置SSLHandler在SSL/TLS摇动双手后修改其行为或提供通知,以便将所有数据加密。自动执行。

  sethandshaketimeout(...)sethandshaketimeoutmillis(...)gethandshaketimeoutmillis()设置并脱离,然后通知握手ChannEnelture.setClosenotifyTimeout(...)setClosenotifyTimeTifyTimeTimeTimeTimeTmillis(...)之后,闭合通知将随着时间的流逝。这也将导致闭合通知的失败。HandShage()将来返回频道,一旦完成握手,它将接收通知。如果您完成握手。,它将返回包含最后一个握手结果的Channeelfuture。转移(...)发送Close_notify请求以关闭并销毁基础的SSlengine。