利用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 可以看到旁边绿色的锁了,大功告成。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • 本地HTTPS环境搭建的完整步骤记录

    前言 之前在为公司的应用添加 https 时,是在 nginx 上配置的,这样不需要 node 做额外的开发,但是组内的开发同学本地一直没有配置,一直是采用 http 的方式开发和测试.最近发现有些 case 需要 https 来复现,比如 Android 5.0 以上的 app 内,使用 https 的网站访问 http 的内容会阻止访问,这种问题测试的时候本地就需要一个 https 的环境.于是花了点时间学习了下本地 https 的搭建,在这里记录一下.下面话不多说了,来一起看看详细的介绍吧

  • windows环境下用squid代理https(ssl)的方法

    这个其实跟配置http代理也差不多,我之前是因为没有使用支持ssl的squid版本,所以反复折腾都不见效! 首先得检查你正在使用的squid版本是否是支持ssl的,主要看squid\sbin\ssleay32.dll文件是否存在,如果没有此文件那就得去换个支持ssl的squid版本了. 我这里就只提供个最简单的例子: 复制代码 代码如下: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 12

  • 有了SSL证书,如何在IIS环境下部署https

    昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒...本来小编也挺懒的,但是答应了各位小伙伴的,那么今天就教大家如何在IIS环境下部署HTTPS证书吧.(建议在PC端阅读) 1.首先我们要取走我们的证书,保存在我们本地的电脑里,然后复制到服务器即可. 2.取走后接下来干嘛?当然是打开文件看看里面有些什么啊.我们找到IIS那个压缩包并解压. 3.解析得到pfx文件,也就是我们需要部署域名的证书文件.

  • nginx环境下配置ssl加密(单双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

  • 利用Docker搭建本地https环境的完整步骤

    什么是 HTTPS 我们都知道 Web App 的运行都是建立在网络应用层 HTTP 协议的,HTTP 协议能够进行客户端和服务器之间的请求和返回.但是这个过程是明文传输的,当请求被抓包后传输内容很容易被篡改,这对用户的安全性来说是极其严重的威胁.PWA 应用出于安全性的考虑要求项目必须部署在 HTTPS 环境. 那么 HTTPS 是什么呢? HTTPS 是将 HTTP 置于 SSL/TLS 之上,其效果是加密 HTTP 流量( traffic ),包括请求的 URL.结果页面.cookies.

  • 利用Docker搭建Laravel开发环境的完整步骤

    前言 在这篇文章中我们将通过Docker在个人本地电脑上构建一个快速.轻量级.不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器里),加入Vue只是因为有的项目里会在Laravel项目中使用Vue做前后端分离开发,开发环境中需要安装前端开发需要的工具集,当然前后端也可以分成两个项目开发,这个话题不在本篇文章的讨论范围内. 所以我们的目标是: 不在本地安装Mamp/Wamp这样的软件 不使用类似Vagrant这样的虚拟机

  • 利用docker搭建web服务环境的方法步骤

    前言 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都会具有一定的依赖性的.对于 PHP 的 Web 开发来说,开发环境至少要有一个 Web 服务器(如 Apache.Nginx).一个数据库服务器(如 MySQL)和一个 PHP 解析器吧,如果你的 PHP 代码使用的一些扩展,那你还需要给你的 PHP 安装上这些扩展,那样你的 PHP 代码才能够顺利地跑起来.对于一个只想静静地敲代码的开发人员来说,开发环境的安装与配置这种事情,只要经历一次就已经很折腾人了.可

  • 在Mac上利用VirtualBox搭建本地虚拟机环境的方法

    1. 大数据和Hadoop 研究学习大数据,自然要从Hadoop开始. Hadoop不是一个简单的软件,而是有一些列软件形成的生态,其核心思想来自Google当初发布的三篇论文,后来做了开源的实现, 谷歌的实现和Hadoop的实现大致可以做这样的对应: Google Map/Reduce <---> Hadoop MapReduce Google GFS <---> Hadoop HDFS Google BigTable <---> Hadoop HBase Hadoo

  • 利用docker搭建LAMP运行环境教程详解

    LAMP介绍 LAMP 指的 Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和 PHP(有时也是指 Perl 或 Python) 的第一个字母,一般用来建立 web 服务器. 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本***了这些软件).当一起使用的时候,它们表现的像一个具有活力的解决方案包. 下面介绍如何使用docker来搭建一个包含lamp组件的

  • Docker搭建本地私有仓库的详细步骤

    和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库.使用私有仓库有许多优点: 一.节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可: 二.提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用. 接下来我们就大致说一下如何在本地搭建私有仓库. 环境准备 环境:两个装有Docker的Ubuntu虚拟机 虚拟机一:192.168.112.132 用户开发机 虚拟

  • 利用docker搭建php7和nginx运行环境全过程(官方镜像)

    本文分享的是利用docker搭建php7和nginx运行环境的全过程,分享出来供大家参考学习,下面来看看详细的介绍: 环境介绍 根目录: /docker 网站根目录:/docker/www nginx相关目录:/docker/nginx/conf.d 准备工作 1.使用docker加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://68abbefd.m.daocloud.io service do

  • 利用nodeJs anywhere搭建本地服务器环境的方法

    公司有个微信端项目,需要前端在手机上随时查看网页,于是乎用Node搭建了一个本地服务器环境,把网页地址发到QQ并用手机打开来查看. 首先去nodeJs官网下载最新版nodeJs https://nodejs.org/en/ 安装成功后win+r打开cmd 输入node -help 或者node -v查看是否安装成功 装好后输入 npm install anywhere -g来安装anywhere.注意如果是mac系统会提示你权限不够,需要在代码前加上 sudo获取管理员权限.即sudo npm

  • 本地使用Docker搭建go开发环境的全过程

    目录 前言 安装 1.docker安装 2.go安装 3.配置 4.运行 5.完成 总结 前言 对于我这种小白来说,本地环境搭建常规的操作一向是直接去go官网下载go安装包,本机进行安装,然后配置相应的GOROOT和GOPATH,再将GOPROXY和GO111MODULE设置完成,本地跑一下go env,可以正常使用就OK了. 不过,自从学习了docker之后,被深深的套路了. 说一下用docker部署本地环境的好处: 可以保持系统软件环境的纯净.这一点对于喜欢折腾各种工具软件,然后把系统依赖环

  • Docker 搭建 Tomcat 运行环境的方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1 Docker与虚拟机   2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2.2 安装Docker # yum install d

随机推荐