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. HTML标签_head标签

    HTML标签分为两种,自闭合标签和主动闭合标签:没有另一半 自动闭合标签,有另一半叫主动闭合标签. 自动闭合标签,只有开头没有结尾,即没有另一半:如<meta charset="UTF ...

  2. dedecms后台每页文章条数如何修改(“文档列表”每一页显示的文档条数)

    小明在学习采集,弄了个dedecms作为发布平台,几个小时后跑来报喜说好简单,但又不想制造那么多spam,每个分类只保留几条就好.在后台删除这些文章,每页只显示30个,看了下有100多页,立马沮丧了, ...

  3. dedecms提取某栏目及子栏目名称到首页怎么弄

    我们建网站时有不同的需求,例如为页面创建一个栏目导航,用dedecms如何提取某栏目及子栏目名称和链接呢?如下图所示,先列出指定的顶级栏目,在下方再列出此栏目的所有子栏目. 之前ytkah说过dede ...

  4. 第十八篇:融汇贯通--谈USB Video Class驱动

    USB Video Class驱动是WINDOWS系统包含的一个针对于USB VIDEO 类的驱动程序. 好多project师都做过USB VIDEO设备端的开发, 基本的工作内容为: 使用FIRMW ...

  5. quic协议实时视频直播

    扫盲 https://www.jianshu.com/p/b7546ff9b683 demo https://github.com/felix-001/QuicRtmp https://github. ...

  6. PHP生成zip压缩包

    /* * $res = new MakeZip($dir,$zipName); *@ $dir是被压缩的文件夹名称,可使用路径,例 'a'或者'a/test.txt'或者'test.txt' *@ $ ...

  7. 前端js如何生成一个对象,并转化为json字符串

    https://www.cnblogs.com/May-day/p/6841958.html 一,直接上代码 <script src="../../Content/jquery-2.0 ...

  8. context、config

    Tomcat启动时已经创建了context,并使用它读取了web.xml中的参数,后台可以从context里获取参数 后台获取参数代码: ServletContext context = getSer ...

  9. PAT 1017 Queueing at Bank[一般]

    1017 Queueing at Bank (25)(25 分)提问 Suppose a bank has K windows open for service. There is a yellow ...

  10. Centos上把新安装的程序添加到系统环境变量的两种方法

    1.软链接 通过命令查看当前系统的环境变量信息,然后软连接形式把程序的地址连接到已经在环境变量中的目录中 echo "$PATH" > /root/tmp 结果如下: /us ...