这篇文章主要介绍“如何用Docker搭建本地https环境”,在日常操作中,相信很多人在如何用Docker搭建本地https环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Docker搭建本地https环境”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
什么是 https
我们都知道 web app 的运行都是建立在网络应用层 http 协议的,http 协议能够进行客户端和服务器之间的请求和返回。但是这个过程是明文传输的,当请求被抓包后传输内容很容易被篡改,这对用户的安全性来说是极其严重的威胁。pwa 应用出于安全性的考虑要求项目必须部署在 https 环境。
那么 https 是什么呢?
https 是将 http 置于 ssl/tls 之上,其效果是加密 http 流量( traffic ),包括请求的 url、结果页面、cookies、媒体资源和其他通过 http 传输的内容。企图干扰 https 连接的人既无法监听流量,也无法更改其内容。除了加密,远程服务器的身份也要进行验证:毕竟,如果你无法确定连接的另一端是谁,加密连接也就没什么意义了。这些措施将使拦截流量变得极其困难。虽然攻击者仍有可能知道用户正在访问哪个网站,但他所能知道的也就仅限于此了。
https请求流程图
本文将利用docker & docker-compose 搭建本地 https 环境,下面话不多说了,来一起看看详细的介绍吧。
工具:
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 可以看到旁边绿色的锁了,大功告成。
到此,关于“如何用Docker搭建本地https环境”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。