HTTPS:超文本安全传输协议,和HTTP相比,多了一个SSL/TSL的认证过程,端口为443
在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层(SSL层)。

从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容。

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

握手过程的具体描述如下:

1. 浏览器将自己支持的一套加密规则发送给网站。
2. 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3. 浏览器获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4. 网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5. 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

HTTPS一般使用的加密与HASH算法如下:

非对称加密算法:     RSA, DSA/DSS
对称加密算法:    AES,RC4,3DES
HASH算法:     MD5,SHA1,SHA256

openssl自建证书:(Win64OpenSSL_Light-1_1_0g.exe版本)

创建用私钥签名的证书,配置到iis服务器:

简化版,只对iis提供证书,没有ca根证书

genrsa -out myself.key 2048

req -new -x509 -key myself.key -out myself.cer -days 3650 -subj /CN=127.0.0.1

pkcs12 -export -out myself.pfx -inkey myself.key -in myself.cer

然后在iis->服务器证书->导入myself.pfx证书

网站中重新绑定,协议https,端口443,然后在hosts中设置即可通过https访问。

加密版本:

生成私钥
genrsa -des3 -out private.key 2048
des3代表加上了加密,后面的2048是代表生成的密钥的位数,1024已经不是很安全 生成服务器的私钥,去除密钥口令
rsa -in private.key -out server.key 生成证书请求
req -new -key private.key -out server.csr -days 36500 -subj /CN=127.0.0.1 使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
x509 -req -in server.csr -out server.crt -outform pem -signkey server.key -days 3650
-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
-输出格式为cer格式
x509 -req -in server.csr -out server.cer -signkey server.key -days 3650 iis需要的pfx格式的证书,现在转换格式:iis.pfx
pkcs12 -export -clcerts -in server.cer -inkey server.key -out iis.pfx

安装cer证书的时候,一定要安装到受信任的根证书颁发机构,虽然其他的也能访问,但是浏览器会提示不安全。

根证书:

创建私钥:ca.key

genrsa -out ca/ca.key 1024

创建证书请求 : ca.csr

OpenSSL>  req -new -out ca/ca.csr -key ca/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) [AU]:cn
State or Province Name (full name) [Some-State]:shanghai
Locality Name (eg, city) []:shanghai
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dfrzw
Organizational Unit Name (eg, section) []:dfrzw
Common Name (e.g. server FQDN or YOUR name) []:***.rongzi
Email Address []:hongda159505@aliyun.com Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:hongdada
An optional company name []:dfrzw

上述可直接在命令中用-subj跟在语句后面,如:

req -new -out ca/ca.csr -key ca/ca.key -days 3650 -subj /CN=127.0.0.1

自签署证书 :ca.cer

x509 -req -in ca/ca.csr -out ca/ca.cer -signkey ca/ca.key -days 3650

3650,设置10年的证书有效期

将证书导出成浏览器支持的.p12格式 :

pkcs12 -export -clcerts -in ca/ca.cer -inkey ca/ca.key -out ca/ca.p12

我这边的密码是:hongdada

创建server证书:

创建私钥:server.key

genrsa -out server/server.key 1024

创建证书请求 : server.csr

req -new -out server/server.csr -key server/server.key -days 3650 -subj /CN=127.0.0.1

自签署证书 :server.cer

x509 -req -in server/server.csr -out server/server.cer -signkey server/server.key -CA ca/ca.cer -CAkey ca/ca.key -CAcreateserial -days 3650

将证书导出成浏览器支持的.p12格式 :server.p12

pkcs12 -export -clcerts -in server/server.cer -inkey server/server.key -out server/server.p12

iis需要的pfx格式的证书,现在转换格式:iis.pfx

pkcs12 -export -clcerts -in server/server.cer -inkey server/server.key -out server/iis.pfx

使用Wireshark抓包https:

http://joji.me/zh-cn/blog/walkthrough-decrypt-ssl-tls-traffic-https-and-http2-in-wireshark

tcp.ssl:

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

http://blog.csdn.net/shion0305/article/details/73776449

https://www.cnblogs.com/walkerwang/p/4910799.html

http://blog.csdn.net/mooncom/article/details/60140372

http://blog.csdn.net/sdsabc2000/article/details/77028635

http://www.cnblogs.com/AloneSword/p/4656492.html

http://blog.csdn.net/sxy2475/article/details/77918108?locationNum=2&fps=1?%3E

http://blog.csdn.net/PZ0605/article/details/51954876

Https流程,openssl本地自建证书,抓包的更多相关文章

  1. Android导入Burp Suite证书抓包HTTPS

    需求 Android APP安全测试时,主要工作分为: APK安全 业务安全 APK安全这里不讨论,我说说业务安全,因为大部分的业务校验逻辑还是放在Servier端,这里就会涉及到网络通信了.因此网络 ...

  2. Windows版 charles安装证书抓包网页HTTPS

    1.在Charles官网https://www.charlesproxy.com/download/下载,我这边下载的是免费体验版的. 2.安装好以后打开,配置Charles证书:选择 help--S ...

  3. Fidder详解-抓取HTTPS清求(Web/App)抓包分析(靠谱篇)

    为什么要学Fidder抓包? 学习接口,必须要学http协议,不要求您对协议的掌握有多深.只是希望你能够了解什么是协议.协议的报文.状态码等等!本文通过抓包工具Fidder带你进入接口的大门.我们通过 ...

  4. 部署asp.net core Kestrel 支持https 使用openssl自签ssl证书

    通过openssl生成证书 openssl req -newkey rsa:2048 -nodes -keyout my.key -x509 -days 365 -out my.cer openssl ...

  5. IOS https抓包及10.3.3版本证书不生效问题解决

    Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP抓包 ...

  6. https wireshark抓包——要解密出原始数据光有ssl 证书还不行,还要有浏览器内的pre-master-secret(内存里)

    基于wireshark抓包的分析 首先使用wireshark并且打开浏览器,打开百度(百度使用的是HTTPS加密),随意输入关键词浏览. 我这里将抓到的包进行过滤.过滤规则如下 ip.addr == ...

  7. 接口测试之——Charles抓包及常见问题解决(转载自https://www.jianshu.com/p/831c0114179f)

    简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用,安装Charl ...

  8. 十分钟学会Charles抓包(iOS的http/https请求)

    ### 原文地址,感谢作者 : http://www.jianshu.com/p/5539599c7a25 Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安装Ch ...

  9. 43.Charles抓包(iOS的http/https请求)

    Charles安装 HTTP抓包 HTTPS抓包     1. Charles安装 官网下载安装Charles: https://www.charlesproxy.com/download/ 2. H ...

随机推荐

  1. mysql 表基本增删查改

    对表的操作是在某个数据库下才能进行的,所以要先选择数据库 "use 数据库名;" 1.创建数据表 1)"create table 表名 (字段1  类型  [约束],  ...

  2. 前端 HTML body标签相关内容 常用标签 图片标签 <img/>

    图片标签 <img/> 一个网页除了有文字,还会有图片.我们使用<img/>标签在网页中插入图片. <img/> 是单闭合标签 语法:<img src=&qu ...

  3. DeepMind提出空间语言集成模型SLIM,有效编码自然语言的空间关系

    前不久,DeepMind 提出生成查询网络 GQN,具备从 2D 画面到 3D 空间的转换能力.近日.DeepMind 基于 GQN 提出一种新模型.可以捕捉空间关系的语义(如 behind.left ...

  4. (转)FastDFS文件存储

    一.FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 个人封装 ...

  5. [py]access日志入mysql-通过flask前端展示

    目录 pymysql组装sql入库日志 代码组织 将入库的日志通过flask前端展示 pymysql组装sql入库日志 pymysql模块的用法 采集这些指标(metirc)都是linux环境,会用到 ...

  6. Ubuntu单用户模式(安全模式)

           说下我遇到的情况,ubuntu服务器,防火墙关闭,连的外网.服务器中毒,病毒自动生成用户,然后病毒进程开启启动,进程启动后,cpu立马占满,服务器立马卡死,本想着服务器启动后通过top命 ...

  7. AngularJS 事件广播与接收 $emit $broadcast $on

    AngularJS中的作用域scope有一个非常有层次和嵌套分明的结构. 其中它们都有一个主要的$rootScope(也就说对应的Angular应用或者ng-app),然后其他所有的作用域部分都是继承 ...

  8. [LeetCode] 237. Delete Node in a Linked List_Easy tag: Linked List

    Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...

  9. http协议基础(六)报文首部

    http请求和响应报文内容比较多,会分为大概四部分更新,最近比较忙,没太多时间整理- - 首先来看看报文结构吧 1.http请求报文 http请求报文由方法.URI.http版本.http首部字段等构 ...

  10. Summary: gcd最大公约数、lcm最小公倍数算法

    欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数.其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + ...