idou老師教你學Istio 17 : 透過HTTPS進行雙向TLS傳輸
眾所周知,HTTPS是用來解決 HTTP 明文協議的缺陷,在 HTTP 的基礎上加入 SSL/TLS 協議,依靠 SSL 證書來驗證伺服器的
身份,為客戶端和伺服器端之間建立“SSL”通道,確保資料運輸安全。而Istio的雙向TLS也用來保證資料傳輸安全。那麼,
Istio的雙向TLS是如何與HTTPS服務一起工作的呢?
下面透過例項演示Istio的雙向TLS是如何與HTTPS服務一起工作的,包括三個部分:
• 在沒有 Istio sidecar 的情況下部署 HTTPS 服務
• 關閉 Istio 雙向 TLS 認證情況下部署 HTTPS 服務
• 部署一個啟動雙向 TLS 的 HTTPS 服務。對於每個部署,請求連線到此服務並驗證其是否有效。
環境準備
• 未啟用雙向TLS的安裝了Istio的k8s叢集
• 安裝openssl,生成證書和configmap
透過openssl生成key和證書:
從給定的公私鑰對建立TLS secret:
使用kubectl建立Configmap:
1.沒有部署sidecar
建立一個不部署sidecar的基於nginx的HTTPS服務,並建立一個部署sidecar的sleep應用來排程nginx
檢查上述pod是否正常執行
在pod正常執行時,從sleep應用的istio-proxy容器內訪問HTTPS服務:
可以看到,nginx能正常訪問。
2. 部署sidecar並禁用雙向TLS
刪除上一步建立的未部署sidecar的HTTPS服務,並用sidecar部署它
檢視pod是否正常啟動:
在pod正常執行時,從istio-proxy容器執行,可以看到,nginx能正常訪問:
3. 部署sidecar,並啟用雙向TLS
透過配置網格級別的認證策略啟用全域性雙向TLS,首先配置網格認證策略:
配置目的地規則:
此時,網格中的所有服務已經開啟了雙向TLS功能,從sleep容器中訪問nginx是正常的:
從sleep容器中訪問時,工作流為“sleep→sleep-proxy→nginx-proxy→nginx” ,此時,整個過程是7層流量,在
sleep-proxy到nginx-proxy之間有一個L4雙向TLS加密。
而在istio-proxy中執行時,它無法工作:
此時,工作流為“sleep-proxy→nginx-proxy→nginx”,nginx-proxy會從sleep-proxy中獲得雙向TLS流量,但是
sleep-proxy無法提供客戶端證書,因此,它不起作用。
總結:透過上述演示,可以瞭解到,當istio sidecar使用HTTPS服務部署時,無論是否啟用雙向TLS功能,代理自動從L7降到
L4,所以,它不會終止原來的HTTPS通訊。
相關服務請訪問https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908804/viewspace-2633846/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- idou老師教你學Istio 17 : 通過HTTPS進行雙向TLS傳輸HTTPTLS
- idou老師教你學Istio:如何用 Istio 實現速率限制
- idou老師教你學Istio 26:如何使用Grafana進行視覺化監控Grafana視覺化
- idou老師教你學Istio 28:istio-proxy check 的快取快取
- idou老師教你學istio 31:Istio-proxy的report流程
- idou老師教你學Istio 23 : 如何用 Istio 實現速率限制
- idou老師教你學Istio 19 : Istio 流量治理功能原理與實戰
- idou老師教你學Istio 27:解讀Mixer Report流程
- idou老師教你學Istio :5分鐘簡析Istio異常檢測
- idou老師教你學Istio06: 如何用istio實現流量遷移
- idou老師教你學Istio 22 : 如何用istio實現呼叫鏈跟蹤
- idou老師教你學Istio 07: 如何用istio實現請求超時管理
- idou老師教你學Istio: 如何用Istio實現K8S Egress流量管理K8S
- idou老師教你學Istio :如何用istio實現監控和日誌採集
- idou老師教你學Istio 25:如何用istio實現監控和日誌採集
- idou老師教你學Istio05: 如何用Isito實現智慧路由配置路由
- idou老師教你學Istio 09: 如何用Istio實現K8S Ingress流量管理K8S
- idou教你學Istio10 : 如何用Istio實現K8S Egress流量管理K8S
- HTTPS連線建立過程(單向&雙向)HTTP
- HTTPS 傳輸優化詳解之動態 TLS Record SizeHTTP優化TLS
- 真正“搞”懂HTTPS協議17之TLS握手HTTP協議TLS
- Istio最佳實踐:在K8s上透過Istio服務網格進行灰度釋出K8S
- gRPC(五)進階:透過TLS建立安全連線RPCTLS
- https雙向認證HTTP
- 鐳速傳輸淺談TLS 和檔案傳輸TLS
- EFF:全球已有超過一半的web流量採用了加密的HTTPS進行傳輸Web加密HTTP
- Win10系統怎麼透過藍芽與手機進行檔案傳輸Win10藍芽
- 在Oracle11g Streams單向傳輸的基礎上,配置Streams雙向傳輸測試Oracle
- HTTPS 是如何進行安全傳輸的 ?HTTP
- 深入理解https進行SSL單向認證的全過程HTTP
- 哪裡有免費大檔案傳輸平臺?透過這4個網站免費來進行大檔案傳輸網站
- 張傳波老師Scrum學習心得Scrum
- [HTTPS]SSL/TLSHTTPTLS
- 請教雙向資料傳輸的解決辦法
- Linux透過Shell命令向埠傳送資料Linux
- HTTPS加密過程和TLS證書驗證HTTP加密TLS
- 透過 OKR 進行專案過程管理OKR
- 透過 NTP 進行時鐘同步