10.11 HTTPS
没有HTTPS的抓包截图
HTTPS=HTTP + TLS/SSL
https 实现过程如下
1.客户端发起HTTPS请求
rewrite
www.baidu.com
https://www.baidu.com 客户端访问某个web端的https地址,一般都是443端口
2.服务器端的配置
采用https协议的服务器必须有一套证书
证书就是一个公钥和私钥
你可以将公钥送给别人用来加密文件,只有你的私钥可以打开,就保证了数据的安全
证书:需要从一些CA组织颁发,CA被各大浏览器厂商所认可
也可以自己颁发,
3.传送证书
服务端给客户端传递证书,其实就是公钥,包含了(颁发机构,过期时间等)
4.客户端解析证书
这部分是由客户端完成的,首先验证公钥的有效性,比如颁发机构和过期时间等,
如果发现异常则会弹出警告框提示证书可能存在问题,
如果证书没有问题就生成一个随机值,然后用证书对该随机值进行加密,
5.传送4步骤的加密数据
将用证书加密后的随机值传递给服务器,目的就是为了让服务器得到这个随机值,以后客户端和服务器端的通知就可以通过这个随机值进行加密解密了
6.服务器端解密信息
服务器端用私钥解密第5步加密后的随机值之后,得到了客户端传过来的随机值(私钥)
然后把内容通过该值进行对称加密(就是将信息和私钥通过算法混合在一起),
这样除非你知道私钥,不然是无法获取其内部的内容,而正好客户端和服务器端都知道这个私钥,只要机密算法足够复杂就可以保证数据的安全性
7.传输加密后的信息
服务器端将用私钥加密后的数据传递给客户端,在客户端可以被还原出数据内容
8.客户端解密信息
客户端用之前生成的私钥解密服务端传递过来的数据,由于数据一直是加密的,所以第三方获取也无法知道其详细内容
配置参数
配置参数
listen 443 ssl;
ssl_certificate *.crt;
ssl_certificate_key *.key; 私钥 ssl_protocols [SSLv2|SSLv3|TLSv1|TLSv1.1|TLSv1.2];ssl协议版本
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
自签证书
[root@centos7 conf.d]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt
Generating a 4096 bit RSA private key
................................................................++
.......................................................++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:guangdong
Locality Name (eg, city) [Default City]:shenzhen
Organization Name (eg, company) [Default Company Ltd]:nginx
Organizational Unit Name (eg, section) []:tech
Common Name (eg, your name or your server's hostname) []:www.nginx.com
Email Address []:
nginx配置
server {
listen 443 ssl;
server_name www.nginx.com;
ssl_certificate ca.crt;
ssl_certificate_key ca.key;
# ssl_protocols SSLv2 ; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
反向代理
server {
listen 81;
server_name localhost;
location / {
proxy_pass http://10.211.55.20:80;
proxy_set_header X-Forwarded-For $remote_addr; #IP转发
}
}
配置nginx status
location /status {
stub_status on; //开启状态模块功能
allow 192.168.0.1; //只允许本机查看(实验环境不需要添加)
deny all; //拒绝所有人查看(实验环境不需要添加)
} Active connections: //当前活动的连接数量
accepts //已经接受客户端的连接总数量
handled //已经处理客户端的连接总数量
requests //客户端发送的请求数量
Reading //当前服务器正在读取客户端请求头的数量
Writing //当前服务器正在响应客户端的信息数量
Waiting //当前客户端正在等待服务器的响应数量
10.11 HTTPS的更多相关文章
- iOS冰与火之歌(番外篇) - 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权
iOS冰与火之歌(番外篇) 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权 蒸米@阿里移动安全 0x00 序 这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用 ...
- HP 820 G2变色龙安装10.11.6基本完美
初始状态: 一块ssd硬盘,MBR格式分区,安装了WIN7 64位. 不想动win系统,因此就安装在硬盘的扩展分区 电脑配置: cpu: i7-5600u 声卡: ALC280 显卡: HD55 ...
- MAC OS升级到10.11(OS X EICAPTION)之后CocoaPods不能正常使用的问题解决
昨晚回家之后开始升级系统到10.11,下载了一整个晚上之后终于在早上下载完毕,早上带到公司,想查一个第三方库的时候却遇到了问题: guoyufudeMacBook-Pro:~ GuoYufu$ pod ...
- 战神Z7 D2安装黑苹果OS X El Capitan 10.11.2
安装之初状态:两块硬盘,都是MBR格式分区,一块是机械硬盘,安装了WIN7 32位和Linux,一块是SSD,安装的是WIN7 64位与WIN10 64位以前玩过Mavericks,安装的就是在硬盘的 ...
- mac 10.11.6,Xcode8下,ruby2.3安装,Cocoapods安装~
适用环境 mac: 10.11.6 Xcode:8.1 命令执行步骤(安装ruby2.3前准备工作) 查看ruby更新源 gem sources -L 删除默认官方或者淘宝,新增 https://g ...
- 10.11 cocoapods安装
手动安装gem 手动下载 rubygem https://rubygems.org/pages/download#formats 10.11 cocoapods安装 sudo gem install ...
- 10.11 安装pod
原文地址:http://www.jianshu.com/p/5fc15906c53a 感谢. 更新升级10.11 cocoapods安装出问题最简单的解决方法 这是因为10.11把cocoapods ...
- 2016 Mac OS 10.11 CocoaPods的安装问题
CocoaPods的安装问题: 1.首先用淘宝的Ruby镜像来访问CocoaPods,打开终端输入以下命令: (1)gem sources --remove https://rubygems.org ...
- 升级Capitan 10.11以后CocoaPod 无效解决办法
今天发现升级10.11的系统以后执行 pod install 的时候报错 zsh: command not found: pod 解决方法如下: 1.检查gem 的数据源 gem sources -l ...
随机推荐
- SpringBoot中的thymeleaf引擎报错
关于:thymeleaf报错: An error happened during template parsing (template: "class path resource [temp ...
- Ubuntu 16.04LTS修改开机启动项
装上Ubuntu16.04后,每次开机都得手选开机项,挺麻烦 sudo vi /etc/default/grub GRUB_DEFAULT=0GRUB_HIDDEN_TIMEOUT=0GRUB_HID ...
- Learning ROS: Aboat URDF (Unified Robot Description Format)
Building a Visual Robot Model with URDF from Scratch roscore &# With $(find urdf_tutorial), this ...
- HTTP系列之:HTTP中的cookies
目录 简介 cookies的作用 创建cookies cookies的生存时间 cookies的权限控制 第三方cookies 总结 简介 如果小伙伴最近有访问国外的一些标准网站的话,可能经常会弹出一 ...
- MySQL 源码安装规范
一 .目录规划 MySQL 的目录包括 base 目录和 data 目录,base 目录存放软件文件,每个版本的软件单 独一个目录,例如/usr/local/mysql/mysql5.6.19.dat ...
- Git最强总结!
本文已经收录到Github仓库,欢迎大家围观.star.此仓库用于分享Java核心知识,包括Java基础.MySQL.SpringBoot.Mybatis.Redis.RabbitMQ等等,面试必备. ...
- i++ ++i 理解
i++与++i怎么运算,解决办法: i++规则是在表达式中先取i的值使用,后让i的值变化成加1后的值. 举例:如在式中 j=i++,他就会变成这样的两步,第一步先执行j=i,第二步执行i=i+1. + ...
- 01_Keil与Proteus联合仿真的注意事项
01. 关于keil5和Proteus8的联合仿真的操作步骤,这里就不细说,给个链接,步骤差不多是最齐全的 CSDN博客链接:https://blog.csdn.net/wzk456/article/ ...
- shell脚本之case语句
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行 ...
- git跟踪忽略规则文件.gitignore
在使用Git的过程中,我们希望有的文件比如临时文件,编译的中间文件等不要被跟踪,也不需要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交. 配置语法 以斜杠"/"开 ...