利用Docker搭建本地https環(huán)境的完整步驟
什么是 HTTPS
我們都知道 Web App 的運行都是建立在網(wǎng)絡應用層 HTTP 協(xié)議的,HTTP 協(xié)議能夠進行客戶端和服務器之間的請求和返回。但是這個過程是明文傳輸?shù)?,當請求被抓包后傳輸?nèi)容很容易被篡改,這對用戶的安全性來說是極其嚴重的威脅。PWA 應用出于安全性的考慮要求項目必須部署在 HTTPS 環(huán)境。
那么 HTTPS 是什么呢?
HTTPS 是將 HTTP 置于 SSL/TLS 之上,其效果是加密 HTTP 流量( traffic ),包括請求的 URL、結果頁面、cookies、媒體資源和其他通過 HTTP 傳輸?shù)膬?nèi)容。企圖干擾 HTTPS 連接的人既無法監(jiān)聽流量,也無法更改其內(nèi)容。除了加密,遠程服務器的身份也要進行驗證:畢竟,如果你無法確定連接的另一端是誰,加密連接也就沒什么意義了。這些措施將使攔截流量變得極其困難。雖然攻擊者仍有可能知道用戶正在訪問哪個網(wǎng)站,但他所能知道的也就僅限于此了。
https請求流程圖
本文將利用Docker & docker-compose 搭建本地 https 環(huán)境,下面話不多說了,來一起看看詳細的介紹吧。
工具:
- acme#sh (生成免費證書)
- Docker & docker-compose
- ihost (可以手動修改 hosts 文件)
配置文件:
docker-compose.dev.yml
version: '3' services: proxy: image: nginx:stable-alpine ports: - 443:443 volumes: - /Users/thonatos/.acme.sh/*.implements.io:/etc/nginx/ssl/ - ./default.conf:/etc/nginx/conf.d/default.conf
default.conf
# HTTP server # server { listen 443 ssl; server_name szcu.implements.io; ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/*.implements.io.key; location / { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://192.168.2.51:7001; # IP 請勿使用 127.0.0.1 } }
hosts
127.0.0.1 szcu.implements.io
運行
# 啟動 Egg.js yarn dev # 啟動 nginx docker-compose -f docker-compose.dev.yml up
打開 Chrome 可以看到旁邊綠色的鎖了,大功告成。
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
docker容器間互相訪問(docker bridge網(wǎng)絡)
本文主要介紹了docker容器間互相訪問(docker bridge網(wǎng)絡),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01Docker NFS volume創(chuàng)建與使用方式
這篇文章主要介紹了Docker NFS volume創(chuàng)建與使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02詳解基于docker-swarm搭建持續(xù)集成集群服務
這篇文章主要介紹了詳解基于docker-swarm搭建持續(xù)集成集群服務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10