国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Netty】使用 SSL/TLS 加密 Netty 程序(二十)

這篇具有很好參考價值的文章主要介紹了【Netty】使用 SSL/TLS 加密 Netty 程序(二十)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

回顧Netty系列文章:

  • Netty 概述(一)
  • Netty 架構設計(二)
  • Netty Channel 概述(三)
  • Netty ChannelHandler(四)
  • ChannelPipeline源碼分析(五)
  • 字節(jié)緩沖區(qū) ByteBuf (六)(上)
  • 字節(jié)緩沖區(qū) ByteBuf(七)(下)
  • Netty 如何實現(xiàn)零拷貝(八)
  • Netty 程序引導類(九)
  • Reactor 模型(十)
  • 工作原理詳解(十一)
  • Netty 解碼器(十二)
  • Netty 編碼器(十三)
  • Netty 編解碼器(十四)
  • 自定義解碼器、編碼器、編解碼器(十五)
  • Future 源碼分析(十六)
  • Promise 源碼分析(十七)
  • 一行簡單的writeAndFlush都做了哪些事(十八)

今天數(shù)據(jù)隱私是一個十分關注的問題,作為開發(fā)人員,我們需要準備好解決這個問題。至少我們需要熟悉加密協(xié)議 SSL 和 TLS 等之上的其他協(xié)議實現(xiàn)數(shù)據(jù)安全。作為一個 HTTPS 網站的用戶,你是安全。當然,這些協(xié)議是廣泛不基于 http 的應用程序,例如安全SMTP(SMTPS)郵件服務,甚至關系數(shù)據(jù)庫系統(tǒng)。

為了支持 SSL/TLS,Java 提供了 javax.net.ssl API 的類SslContext 和 SslEngine 使它相對簡單的實現(xiàn)解密和加密。Netty 的利用該 API 命名 SslHandler 的 ChannelHandler 實現(xiàn),有一個內部 SslEngine 做實際的工作。

一、SSL/TLS概述

SSL全稱是Secure Sockets Layer,安全套接字層,它是由網景公司(Netscape)設計的主要用于Web的安全傳輸協(xié)議,目的是為網絡通信提供機密性、認證性及數(shù)據(jù)完整性保障。如今,SSL已經成為互聯(lián)網保密通信的工業(yè)標準。

SSL/TLS 位于TCP層和應用層之間,具體如下圖所示:
【Netty】使用 SSL/TLS 加密 Netty 程序(二十)

二、Sslhandler類

Sslhandler 繼承自 ByteToMessageDecoder 并實現(xiàn)了 ChannelOutboundHandler 接口,因此可以像其他 ChannelHandler 一樣添加到 ChannelPipeline 中,下圖展示了 SslHandler 數(shù)據(jù)流圖。
【Netty】使用 SSL/TLS 加密 Netty 程序(二十)

  1. 加密的入站數(shù)據(jù)被 SslHandler 攔截,進行解密。
  2. 前面加密的數(shù)據(jù)被 SslHandler 解密后,原始數(shù)據(jù)入站。
  3. 原始數(shù)據(jù)經過 SslHandler。
  4. SslHandler 加密數(shù)據(jù)并它傳遞出站。

以下為一個 SslHandler 使用 ChannelInitializer 添加到 ChannelPipeline 的示例。

public class SslChannelInitializer extends ChannelInitializer<Channel> {

    private final SslContext context;
    private final boolean startTls;
    public SslChannelInitializer(SslContext context,
    boolean client, boolean startTls) {   //1
        this.context = context;
        this.startTls = startTls;
    }
    
    @Override
    protected void initChannel(Channel ch) throws Exception {
        SSLEngine engine = context.newEngine(ch.alloc());  //2
        engine.setUseClientMode(client); //3
        ch.pipeline().addFirst("ssl", new SslHandler(engine, startTls));  //4
    }
}
  1. 使用構造函數(shù)來傳遞 SSLContext 用于使用(startTls 是否啟用)。
  2. 從 SslContext 獲得一個新的 SslEngine 。給每個 SslHandler 實例使用一個新的 SslEngine。
  3. 設置 SslEngine 是 client 或者是 server 模式。
  4. 添加 SslHandler 到 pipeline 作為第一個處理器。

在大多數(shù)情況下,SslHandler 將成為 ChannelPipeline 中的第一個 ChannelHandler 。這將確保所有其他 ChannelHandler 應用他們的邏輯到數(shù)據(jù)后加密后才發(fā)生,從而確保他們的變化是安全的。

SslHandler 有很多有用的方法,如下表所示。例如,在握手階段兩端相互驗證,商定一個加密方法。你可以配置 SslHandler 修改其行為或提供 在SSL/TLS 握手完成后發(fā)送通知,這樣所有數(shù)據(jù)都將被加密。 SSL/TLS 握手將自動執(zhí)行。文章來源地址http://www.zghlxwxcb.cn/news/detail-465351.html

姓名 描述
setHandshakeTimeout(…) setHandshakeTimeoutMillis(…) getHandshakeTimeoutMillis() 設置和獲取超時,之后握手 ChannelFuture 被通知失敗。setCloseNotifyTimeout(…) setCloseNotifyTimeoutMillis(…) getCloseNotifyTimeoutMillis()
握手未來() 返回一個 ChannelFuture,一旦握手完成,就會收到通知。如果握手之前完成,它將返回一個包含上次握手結果的 ChannelFuture。
關閉(…) 發(fā)送 close_notify 請求關閉并銷毀底層 SslEngine。

到了這里,關于【Netty】使用 SSL/TLS 加密 Netty 程序(二十)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • logstash 開啟ssl報錯:Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record

    背景 :在使用證書的方式讓beat和logstash通信傳輸數(shù)據(jù)的過程中,生成了證書,logstash的證書配置如下: 錯誤現(xiàn)象 :在啟動logstsah的時候出現(xiàn)報錯: 問題原因 :排錯的過程比較辛酸,就不贅述了。這里的報錯原因是證書中指定的ip在logstash發(fā)布服務的時候沒有指定該ip,因此拋

    2024年02月12日
    瀏覽(29)
  • HTTP協(xié)議 和 HTTPS協(xié)議的區(qū)別(4點) && HTTPS如何使用SSL/TLS協(xié)議加密過程 && CA證書干啥的

    HTTP協(xié)議 和 HTTPS協(xié)議的區(qū)別(4點) && HTTPS如何使用SSL/TLS協(xié)議加密過程 && CA證書干啥的

    ? 1. HTTP協(xié)議的端口號是80, HTTPS協(xié)議的端口號是443 2. HTTP協(xié)議使用的URL是以 http:// 開頭,HTTPS協(xié)議使用的URL是以https://開頭 3. HTTP協(xié)議和HTTPS協(xié)議最主要的區(qū)別是: HTTP協(xié)議所生成的HTTP請求報文被TCP協(xié)議 以明文形式透明傳輸,同時 客戶端與服務器之間無法核驗對方的身份(不曉

    2024年02月14日
    瀏覽(36)
  • 添加https后反向代理gateway報錯io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record

    域名及https綁定在openshift的router上,用route的Edge模式,證書終止在router(證書卸載),轉發(fā)向后端請求是http的。后端接入nginx做反向代理,所有項目的流量都通過這個nginx。再向后轉發(fā)是兩個nginx,作為本項目的流量入口,有反代和靜態(tài)文件解析功能。再向后就是服務gateway。

    2024年02月11日
    瀏覽(19)
  • 對稱加密與非對稱加密、證書、SSL/TLS握手過程

    對稱加密與非對稱加密、證書、SSL/TLS握手過程

    對稱加密,是一種既簡單速度又快的加密方式,加密與解密使用的都是同一個密鑰,別名又叫做:單密鑰加密;對稱加密有很多公開算法,并且因為它效率很高,所以適用于加密大量數(shù)據(jù)的場合;但其密鑰的傳輸過程是不安全的,并且容易被破解,密鑰管理起來也相對麻煩。

    2024年02月03日
    瀏覽(35)
  • HTTPS、對稱/非對稱加密、SSL/TLS

    問題描述:HTTP的請求和響應都是明文傳輸,有安全隱患 HTTPS :HTTPS并不是一個單獨的協(xié)議,是在 TCP 和 HTTP 之間加入了 SSL/TLS 安全協(xié)議,使得報文能夠加密傳輸,SSL是TLS的前身,現(xiàn)在使用的大多都是TLS。 對稱加密 :發(fā)送方和接收方約定一個同樣的規(guī)則也就是同一個密鑰來對

    2024年04月10日
    瀏覽(32)
  • HTTPS加密協(xié)議詳解:TLS/SSL握手過程

    HTTPS加密協(xié)議詳解:TLS/SSL握手過程

    基于RSA握手和密鑰交換的客戶端驗證服務器為示例詳解TLS/SSL握手過程。 (1).client_hello 客戶端發(fā)起請求,以明文傳輸請求信息,包含版本信息,加密套件候選列表,壓縮算法候選列表,隨機數(shù),擴展字段等信息,相關信息如下: 支持的最高TSL協(xié)議版本version,從低到高依次 SS

    2024年02月09日
    瀏覽(30)
  • 配置SSL/TLS以啟用HTTPS加密通信

    簡介 在本教學文章中,我們將學習如何配置Nginx以支持安全套接字層(SSL/TLS),從而啟用HTTPS并提供加密通信。SSL/TLS是一種安全協(xié)議,用于確保在網絡上進行的通信的保密性和完整性。本教程將介紹如何生成SSL證書,配置Nginx以使用SSL/TLS,并啟用HTTPS。 前提條件 在開始本教

    2024年02月15日
    瀏覽(32)
  • 基于OpenSSL的SSL/TLS加密套件全解析

    基于OpenSSL的SSL/TLS加密套件全解析

    SSL/TLS握手時,客戶端與服務端協(xié)商加密套件是很重要的一個步驟,協(xié)商出加密套件后才能繼續(xù)完成后續(xù)的握手和加密通信。而現(xiàn)在SSL/TLS協(xié)議通信的實現(xiàn),基本都是通過OpenSSL開源庫,本文章就主要介紹下加密套件的含義以及如何在OpenSSL中指定加密套件。 SSL/TLS協(xié)議的加密套件

    2024年01月22日
    瀏覽(19)
  • HTTP協(xié)議 和 HTTPS協(xié)議的區(qū)別(4點) && HTTPS的缺點 && HTTP如何使用SSL/TLS協(xié)議加密過程 && CA證書干啥的

    HTTP協(xié)議 和 HTTPS協(xié)議的區(qū)別(4點) && HTTPS的缺點 && HTTP如何使用SSL/TLS協(xié)議加密過程 && CA證書干啥的

    ? 1. HTTP協(xié)議的端口號是80, HTTPS協(xié)議的端口號是443 2. HTTP協(xié)議使用的URL是以 http:// 開頭,HTTPS協(xié)議使用的URL是以https://開頭 3. HTTP協(xié)議和HTTPS協(xié)議最主要的區(qū)別是: HTTP協(xié)議所生成的HTTP請求報文被TCP協(xié)議 以明文形式透明傳輸,同時 客戶端與服務器之間無法核驗對方的身份(不曉

    2024年02月14日
    瀏覽(36)
  • SSL/TLS加密技術:保護網絡通信安全的關鍵技術

    SSL/TLS加密技術是一種常用的網絡通信協(xié)議,用于確保數(shù)據(jù)在傳輸過程中的安全性和完整性。該技術可以幫助防止黑客、間諜、欺詐和其他形式的網絡攻擊,同時保護用戶隱私和敏感信息。在本文中,我們將深入了解SSL/TLS加密技術的原理、功能和使用方法。 SSL(Secure Sockets

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包