精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TLS+gRPC怎么玩?如何讓自己的RPC通信更加安全?

開發 前端
確保 gRPC 的通信安全我們有很多種不同的方式,其中一種,就是對通信過程進行加密,使用上 TLS。對于 TLS 如何加密,如何協商密鑰,這些我這里就不再啰嗦了,我在之前的文章中都已經介紹過了。咱們就直接來看具體的玩法。

今天我們要在前文的基礎之上,來和小伙伴們聊一聊如何確保 gRPC 的通信安全。

確保 gRPC 的通信安全我們有很多種不同的方式,其中一種,就是對通信過程進行加密,使用上 TLS。對于 TLS 如何加密,如何協商密鑰,這些我這里就不再啰嗦了,我在之前的文章中都已經介紹過了。咱們就直接來看具體的玩法。

這塊整體上可以分為兩大類:

  • 啟用單向安全連接
  • 啟用 mTLS 安全連接

我們分別來看。

1. 啟用單向安全連接

單向安全連接其實就是說只需要客戶端校驗服務端,確保客戶端收到的消息來自預期的服務端,整個的校驗就涉及到我們前文所說的 TLS、CA 等內容了,具體流程是這樣:

  1. 首先我們先在自己電腦本地生成一個自簽名的 CA 證書。
  2. 利用這個 CA 證書,生成一個服務證書。

大致上就這兩個步驟就行了,然后在客戶端和服務端中分別加載相應的證書即可。

上面我們提到了需要先有一個自簽名的 CA 證書,這一步其實也可以省略,省略之后就直接生成一個自簽名的服務證書即可,然后在客戶端和服務端都使用這個服務證書。

來實際操作一下。

先自己安裝一下 openssl 工具,配置一下環境變量,軟件安裝比較簡單,我這里就不啰嗦了。

1.1 生成 CA 證書

首先我們來看下如何生成 CA 證書。

一共是三個步驟:

  1. 生成 .key 私鑰文件:
openssl genrsa -out ca.key 2048
  • out 表示輸出的文件名。
  • 2048 表示私鑰的位數。
  1. 生成 .csr 證書簽名請求文件:

CSR 即證書簽名申請(Certificate Signing Request),獲取 SSL 證書,需要先生成 CSR 文件并提交給證書頒發機構(CA)。CSR 包含了用于簽發證書的公鑰、用于辨識的名稱信息(Distinguished Name)(例如域名)、真實性和完整性保護(例如數字簽名),通常從 Web 服務器生成 CSR,同時創建加解密的公鑰私鑰對。

openssl req -new -key ca.key -out ca.csr  -subj "/C=CN/L=GuangZhou/O=javaboy/CN=local.javaboy.org"
  • subj 中描述的是一些國家、城市、組織以及通用名稱(域名)等信息。
  1. 自簽名生成 .crt 證書文件
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt  -subj "/C=CN/L=GuangZhou/O=javaboy/CN=local.javaboy.org"
  • -x509 表示是要生成自簽名證書。
  • -days 3650 表示證書有效期是 3650 天。
  • -key 表示生成證書所需要的密鑰。

有人說公鑰呢?公鑰其實就在 .crt 證書文件中。

1.2 生成服務證書

再來看生成服務證書,生成服務證書和生成 CA 證書其實整個過程差不多,唯一的區別在于,CA 證書是自簽名的,而服務證書是 CA 的私鑰給簽名的,就這個差別。

  1. 生成 .key 私鑰文件:
openssl genrsa -out server.key 2048
  1. 生成 .csr 證書簽名請求文件:
openssl req -new -key server.key -out server.csr -subj "/C=CN/L=GuangZhou/O=javaboy/CN=local.javaboy.org"
  1. 簽名生成 .crt 證書文件
openssl x509 -req -days 3650 -in server.csr -out server.crt -CA ca.crt -CAkey ca.key
  • -req 和 -in 指定了 server.csr,這個是證書請求文件,這里實際上是表示簽署證書請求文件。

證書現在就生成完畢。

這里我們生成的私鑰都是 .key? 文件,這個用我們 Java 代碼加載的時候會有問題,我們要將之轉為 .pem 格式然后再用 Java 代碼進行加載,轉換的命令如下:

openssl pkcs8 -topk8 -inform pem -in server.key -outform pem -nocrypt -out server.pem

1.3 單向加密

現在證書都有了,在當前項目目錄下新建一個文件夾,專門用來放證書,項目目錄結構如下:

├── certs
│ ├── ca.crt
│ ├── ca.csr
│ ├── ca.key
│ ├── server.crt
│ ├── server.csr
│ ├── server.key
│ └── server.pem
├── grpc_api
│ ├── pom.xml
│ ├── src
│ └── target
├── grpc_client
│ ├── pom.xml
│ ├── src
│ └── target
├── grpc_server
│ ├── pom.xml
│ ├── src
│ └── target
└── pom.xml

我們看下代碼該如何改造實現單向加密通信。

先來看服務端代碼:

public void start() throws IOException {
int port = 50051;
File certFile = Paths.get( "certs", "server.crt").toFile();
File keyFile = Paths.get("certs", "server.pem").toFile();
server = ServerBuilder.forPort(port)
.addService(new LoginServiceImpl())
.addService(ServerInterceptors.intercept(new HelloServiceImpl(), new AuthInterceptor()))
.useTransportSecurity(certFile,keyFile)
.build()
.start();
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
LoginServer.this.stop();
}));
}

大家注意,由于我生成簽名的時候,使用的域名是 local.javaboy.org? 這是我在本地 hosts 文件中配置的,指向本地地址,所以在后續的通信中,我使用的域名都將是 local.javaboy.org。

  1. Paths.get 方法表示從項目的根目錄下開始查找文件,參數是可變長度參數,參數共同組成文件完整路徑。
  2. 服務端需要加載服務簽名和服務私鑰,簽名證書是客戶端驗證服務端身份用的,私鑰則是服務端解密客戶端消息使用的。

服務端的改造就這些。

再來看客戶端的改造:

File certFile = Paths.get( "certs", "ca.crt").toFile();
SslContext sslContext = GrpcSslContexts.forClient().trustManager(certFile).build();
ManagedChannel channel = NettyChannelBuilder.forAddress("local.javaboy.org", 50051)
.useTransportSecurity()
.sslContext(sslContext)
.build();

客戶端主要是加載 CA 證書文件,服務端的證書就是 CA 私鑰簽發的,但是需要 CA 公鑰也就是 ca.crt 進行驗簽,所以這里客戶端加載了 ca.crt 即可。

好啦,整體上的流程差不多就是這個樣子。

2. 啟用 mTLS 安全連接

上面的例子只是客戶端校驗了服務端的身份,服務端并沒有校驗客戶端的身份,如果想要雙向校驗,那么就把上面的流程對稱操作一遍就可以了。

首先我們需要為客戶端生成相應的證書,步驟跟前面也基本上一直,使用 CA 進行簽名,如下:

  1. 生成 .key 私鑰文件:
openssl genrsa -out client.key 2048
  1. 生成 .csr 證書簽名請求文件:
openssl req -new -key client.key -out client.csr -subj "/C=CN/L=GuangZhou/O=javaboy/CN=local.javaboy.org"
  1. 簽名生成 .crt 證書文件
openssl x509 -req -days 3650 -in client.csr -out client.crt -CA ca.crt -CAkey ca.key

然后來看看代碼。

先來看服務端:

public void start() throws IOException {
int port = 50051;
File certFile = Paths.get( "certs", "server.crt").toFile();
File keyFile = Paths.get("certs", "server.pem").toFile();
File caFile = Paths.get("certs", "ca.crt").toFile();
server = NettyServerBuilder.forPort(port)
.addService(new LoginServiceImpl())
.addService(ServerInterceptors.intercept(new HelloServiceImpl(), new AuthInterceptor()))
.sslContext(GrpcSslContexts.forServer(certFile,keyFile).trustManager(caFile).clientAuth(ClientAuth.REQUIRE).build())
.build()
.start();
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
LoginServer3.this.stop();
}));
}

服務端要加載的文件多了 ca.crt,這是給客戶端驗簽的時候需要用到。

再來看看客戶端代碼:

File caFile = Paths.get( "certs", "ca.crt").toFile();
File certFile = Paths.get( "certs", "client.crt").toFile();
File keyFile = Paths.get( "certs", "client.pem").toFile();
SslContext sslContext = GrpcSslContexts.forClient().trustManager(caFile)
.keyManager(certFile, keyFile).build();
ManagedChannel channel = NettyChannelBuilder.forAddress("local.javaboy.org", 50051)
.useTransportSecurity()
.sslContext(sslContext)
.build();

客戶端多了 client.crt? 和 client.pem,兩者的作用根服務端中這兩者的作用基本一致,前文已有說明,這里就不再贅述了。

好啦,如此之后,我們的 gRPC 通信就加上了 TLS 的外殼,更加安全了。

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2021-07-01 10:03:55

Distroless容器安全

2019-02-28 22:47:06

云計算數據安全企業

2011-08-10 09:54:07

2017-07-07 14:52:43

數據安全存儲Splunk

2016-11-24 13:54:56

2024-08-02 10:23:20

2019-06-03 09:11:59

2020-06-11 08:26:05

信息泄漏密碼網絡安全

2010-06-25 18:00:02

APC InfraSt

2021-08-16 12:13:02

SwiftUIList ArticleList

2010-05-18 14:19:13

安全通信

2019-08-28 09:28:07

SSHOpenSSH運維

2025-03-11 08:30:00

Pythonretrying代碼

2017-09-26 11:40:38

Juniper安全Contrail Se

2022-05-25 09:52:36

車聯網通信安全SSL/TLS

2018-09-06 10:16:39

2010-09-09 16:39:24

2015-09-06 10:01:24

2009-12-08 13:02:12

2018-01-15 17:36:58

通信網
點贊
收藏

51CTO技術棧公眾號

欧美捆绑视频| 日本中文字幕在线观看视频| 国产欧美自拍一区| 色婷婷久久一区二区三区麻豆| 视频一区二区三区在线观看| 99久久久国产精品无码免费| 99在线|亚洲一区二区| 国产亚洲视频中文字幕视频| 北条麻妃亚洲一区| 最新中文字幕在线播放| 中文字幕日本不卡| 好吊色欧美一区二区三区| 婷婷激情五月综合| 国产精品theporn| 亚洲图片制服诱惑| 中文字幕avav| 久久精品 人人爱| 午夜精品久久久久久久久久久| 亚洲欧洲一区二区在线观看| 好男人在线视频www| 看国产成人h片视频| 91精品国产99久久久久久| 国产美女高潮视频| 精品国产一区探花在线观看| 亚洲精品在线电影| 97超碰成人在线| 台湾佬成人网| 欧美日韩国产专区| 97久久国产亚洲精品超碰热| 日本中文字幕电影在线免费观看| 91蝌蚪porny| 国产精品一级久久久| 国产精品自偷自拍| 久久国产精品色婷婷| 欧美一级bbbbb性bbbb喷潮片| 国产精品老熟女一区二区| 成人一二三区| 亚洲无av在线中文字幕| 日本免费福利视频| 韩国女主播一区二区三区| 91精品欧美综合在线观看最新| 毛片av免费在线观看| 无码小电影在线观看网站免费 | 欧美成人精品二区三区99精品| 三级在线免费看| 免费观看亚洲| 欧美午夜女人视频在线| 欧美日韩黄色一级片| 国产嫩草在线视频| 亚洲午夜在线视频| 国产在线xxxx| 日本一级理论片在线大全| 一区二区在线免费观看| 亚洲区成人777777精品| 精精国产xxxx视频在线| 亚洲色欲色欲www在线观看| 亚洲图片小说在线| 日本综合在线| 亚洲欧美激情插| 波多野结衣 作品| 牛牛精品在线视频| 午夜精品免费在线观看| 中国丰满人妻videoshd| 高清不卡亚洲| 欧美三级一区二区| 热久久久久久久久| 欧美激情精品| 亚洲国产精品成人精品| 午夜理伦三级做爰电影| 欧美日一区二区| 久久九九全国免费精品观看| 欧美精品一区二区蜜桃| 99在线热播精品免费99热| 欧美一级大胆视频| 一区二区乱子伦在线播放| 精品制服美女丁香| 99影视tv| 欧美精品久久久久久久久久丰满| 亚洲国产精品激情在线观看 | 国产综合网站| 91国内在线视频| 国产精品免费无遮挡无码永久视频| 日韩成人一级片| 亚洲淫片在线视频| 天天综合在线视频| 中文字幕av一区二区三区高| 久久精品在线免费视频| 三级在线看中文字幕完整版| 精品视频一区三区九区| 一级全黄裸体片| 精品在线观看入口| 蜜月aⅴ免费一区二区三区 | 99pao成人国产永久免费视频| 欧美在线日韩在线| 国产伦理一区二区| 91丨porny丨蝌蚪视频| 亚洲看片网站| 国产精品蜜芽在线观看| 欧美日韩国产精选| 黄色录像a级片| 香蕉视频官网在线观看日本一区二区| 久久久久中文字幕2018| 午夜视频网站在线观看| 东方aⅴ免费观看久久av| 日韩色妇久久av| 欧美6一10sex性hd| 欧美日韩一区二区三区免费看| 亚洲最大视频网| 久久日文中文字幕乱码| 2019av中文字幕| 国产黄色片av| 国产精品丝袜一区| 免费av观看网址| 免费观看性欧美大片无片| 精品视频久久久久久| 破处女黄色一级片| 蜜桃av噜噜一区二区三区小说| 国产精品夜夜夜一区二区三区尤| 毛片av在线| 色丁香久综合在线久综合在线观看| 亚洲欧美激情一区二区三区| 成人情趣视频| 欧美在线中文字幕| 亚洲av色香蕉一区二区三区| 国产精品久久久久久久久免费丝袜 | 色噜噜在线观看| 国产一区清纯| 91在线网站视频| 日本激情视频在线观看| 色综合久久88色综合天天| 免费成人蒂法网站| 亚洲免费高清| 国产伦精品一区二区三区| 在线观看h网| 欧美一区二区网站| 亚洲 欧美 国产 另类| 日韩国产欧美在线观看| 欧美精品国产精品久久久| 九色porny视频在线观看| 日韩欧美国产一区在线观看| 顶臀精品视频www| 精品亚洲aⅴ乱码一区二区三区| 手机在线观看国产精品| 婷婷综合六月| 亚洲色图第一页| 天天干,天天干| 久久久99精品久久| 任你操这里只有精品| 免费欧美视频| 国产精品视频xxxx| 欧美18一19xxx性| 91精品国产乱| 精品99久久久久成人网站免费| 激情欧美一区二区三区在线观看| 一本一道久久a久久精品综合| 欧美成人aaa| 久久午夜a级毛片| 精品区在线观看| 一区二区三区四区国产精品| 欧美激情一区二区三区p站| 欧美日韩国产欧| 国产欧美亚洲日本| 制服丝袜专区在线| 在线视频精品一| 在线播放一级片| 日韩美女精品在线| wwwxxx色| 奶水喷射视频一区| 亚洲国产精品www| 亚洲图片小说区| 欧美日韩xxx| 婷婷丁香花五月天| 91福利在线导航| 免费成人深夜夜行网站| 国产在线精品一区二区不卡了| 国产人妻人伦精品| 天美av一区二区三区久久| 国产精品美女999| 自由的xxxx在线视频| 亚洲国产天堂久久综合| 波多野结衣视频在线观看| 亚洲色图视频网| 玖玖爱在线精品视频| 蜜臀久久99精品久久久久宅男| 黄色网络在线观看| 日韩高清三区| 国产在线久久久| 影音先锋男人资源在线| 精品一区二区三区四区| 国产又粗又长视频| 欧美日韩国产精品| 久久精品亚洲a| 99免费精品视频| 亚洲精品成人在线播放| 亚洲激情自拍| 亚洲一区二区精品在线观看| 成人av综合网| 成人精品久久久| 理论不卡电影大全神| 日韩中文字幕av| 五月激情丁香婷婷| 欧美精品三级在线观看| 亚洲永久精品在线观看| 亚洲欧美经典视频| 精品人妻中文无码av在线| 不卡的av电影| 天天久久综合网| 日韩av电影天堂| 欧美激情视频免费看| 欧美r级电影| 欧美日韩国产精品一区二区| 日韩中文字幕在线一区| 国产精品视频免费在线观看| 成年男女免费视频网站不卡| 久久久黄色av| 91精品专区| 精品视频久久久久久久| 内射后入在线观看一区| 欧美一三区三区四区免费在线看| chinese国产精品| 午夜电影一区二区三区| 91在线播放观看| 最新国产成人在线观看| 亚洲av熟女国产一区二区性色| 99综合电影在线视频| 真实乱偷全部视频| 久久99热狠狠色一区二区| 欧美少妇性生活视频| 国产偷自视频区视频一区二区| 奇米777四色影视在线看| 欧美好骚综合网| 午夜精品一区二区在线观看| 猛男gaygay欧美视频| 精品国产一二| 日韩在线黄色| 精品无码久久久久国产| 成午夜精品一区二区三区软件| 97在线资源站| 日本一区二区三区播放| 91在线视频免费| 二区三区精品| 亚洲永久免费观看| 大胆国模一区二区三区| 91久热免费在线视频| 成人在线啊v| 3d精品h动漫啪啪一区二区| 成人在线精品| 成人永久免费| 麻豆一区一区三区四区| 精品视频一区二区| 日韩有码中文字幕在线| 日本a级片久久久| av资源久久| 一区二区精品免费视频| 91成人免费| 91视频成人免费| 在线欧美不卡| 中文字幕无码精品亚洲35| 午夜在线一区| 亚洲三级视频网站| 精品一区二区综合| 免费国偷自产拍精品视频| 国产**成人网毛片九色| 在线免费观看污视频| 久久先锋影音av| 亚洲精品国产精品国自| 最新国产精品久久精品| 久草网站在线观看| 黑人精品xxx一区一二区| 精品成人无码久久久久久| 欧美乱妇15p| 性色av蜜臀av| 国产偷亚洲偷欧美偷精品| 触手亚洲一区二区三区| 欧美成人在线免费| av在线私库| 国产精品永久在线| 日韩精品成人在线观看| 精品国产区在线| 91影院成人| 国产九色porny| 日韩和的一区二区| 最新中文字幕日本| 久久久久88色偷偷免费| 欧美三级黄色大片| 精品日本美女福利在线观看| 亚洲天堂aaa| 亚洲国产精彩中文乱码av| 国产区视频在线播放| 久久av资源网站| 在线手机中文字幕| 91aaaa| 国产不卡一区| 乱熟女高潮一区二区在线| 丝袜美腿一区二区三区| 亚洲三级在线视频| 欧美国产日本韩| 日本熟妇乱子伦xxxx| 欧美日产在线观看| 欧洲一级在线观看| 欧美激情视频一区二区三区不卡 | 伊人久久大香线蕉综合四虎小说 | 99久久久无码国产精品| 三级黄色录像视频| 色哟哟欧美精品| 亚洲毛片在线播放| 色多多国产成人永久免费网站 | 91露出在线| 45www国产精品网站| 精品一区二区三区视频在线播放 | 国产视频久久久久久| 中文字幕一区二区三区av| 日韩在线视频免费播放| 日韩欧美一区二区免费| av国产在线观看| 91干在线观看| 久久电影在线| 国产a级黄色大片| 激情丁香综合五月| 成人午夜免费影院| 91精品福利视频| 日韩av视屏| 97精品一区二区三区| 亚洲va欧美va人人爽成人影院| 伊人情人网综合| 美女一区二区三区| 谁有免费的黄色网址| 欧美日韩激情视频| 人妻偷人精品一区二区三区| 欧美精品免费在线| 99久久99九九99九九九| 亚洲激情一区二区| 日本欧美韩国一区三区| av黄色免费网站| 欧美日韩一区二区精品| 头脑特工队2在线播放| 97精品免费视频| 黄色欧美网站| av之家在线观看| 91女厕偷拍女厕偷拍高清| 99精品视频99| 亚洲精品国产福利| 免费毛片b在线观看| 精品午夜一区二区三区| 99国产精品私拍| 亚洲综合自拍网| 精品久久久久久久久久久久久久| 午夜成人免费影院| 欧美在线国产精品| 亚洲免费成人av在线| 粉嫩虎白女毛片人体| 国产性色一区二区| 中文字幕第一页在线播放| 深夜福利91大全| 国产日韩一区二区三免费高清| 性生活免费观看视频| 国产精一品亚洲二区在线视频| 欧美成人aaa片一区国产精品| 亚洲精品一线二线三线| 国产精品蜜芽在线观看| 欧美中日韩免费视频| 天堂一区二区在线| 精品女人久久久| 日韩欧美精品在线视频| 少妇视频一区| 亚洲国产欧美日韩| 国产精品资源在线观看| 日本中文字幕网| 国产一区二区三区高清在线观看| 国产a亚洲精品| 成人在线免费高清视频| 成人中文字幕在线| 久久精品久久久久久久| 久久精品人人爽| 国产一区在线电影| 国产高潮免费视频| 亚洲女人****多毛耸耸8| 三级在线观看网站| 国产精品免费一区| 亚洲欧美一区在线| 欧洲美一区二区三区亚洲| 8v天堂国产在线一区二区| 免费在线小视频| 亚洲巨乳在线观看| 暴力调教一区二区三区| 中文字幕+乱码+中文字幕明步| 久久国产色av| 免费看成人哺乳视频网站| 久久精品一卡二卡| 狠狠色狠狠色综合日日小说| 黄黄的网站在线观看| 动漫精品视频| 青青草成人在线观看| 久久免费视频99| 中文字幕亚洲自拍| 精品国产一区二区三区成人影院 | 久久精品视频在线免费观看| 99久久精品国产色欲| 庆余年2免费日韩剧观看大牛| 亚洲精品tv久久久久久久久久|