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. 【make install】自定义安装目录,添加动态链接库 【--prefix】 【ldconfig】 【LD_LIBRARY_PATH】

    怎么卸载make install安装的软件? https://www.zhihu.com/question/20092756 怎么指定安装目录以及对应的添加动态库的方法 linux库在不指定安装路径时 ...

  2. SQL SERVER 聚集索引 非聚集索引 区别

    转自http://blog.csdn.net/single_wolf_wolf/article/details/52915862 一.理解索引的结构 索引在数据库中的作用类似于目录在书籍中的作用,用来 ...

  3. sql server 以10分钟分组 统计人数

    请问针对时间段从每天早上7点开始统计每十分钟人 解决思路: 我以前做过一个关于月份的,是说每3个月以分组,其实是一样的.不过可能啊,整体数据量大会有问题.如果你只是求一天的,那绝对没问题.[1]如果只 ...

  4. 15 jmeter分布式性能测试

    背景由于jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起Java内存溢出的错误.要解决这个问题,可以使用分布式测试,运行多台机器运用所 ...

  5. ubuntu 下执行定时任务

    Window shell文件在linux系统下执行不了的解决办法 一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的N ...

  6. Vue 过渡

    过渡 通过 Vue.js 的过渡系统,可以在元素从 DOM 中插入或移除时自动应用过渡效果.Vue.js 会在适当的时机为你触发 CSS 过渡或动画,你也可以提供相应的 JavaScript 钩子函数 ...

  7. Spark Streaming性能优化: 如何在生产环境下应对流数据峰值巨变

    1.为什么引入Backpressure 默认情况下,Spark Streaming通过Receiver以生产者生产数据的速率接收数据,计算过程中会出现batch processing time > ...

  8. 在vue init webpack my-project卡住的问题

    在安装完node.js后,也用cnpm代替了npm,然后使用cnpm在node.js的安装路径下安装了vue-cli:cnpm install --global vue-cli.然后使用vue ini ...

  9. python2.7 环境配置

    1.安装python2.7.8之后,配置环境变量:在path中配置python的安装路径 在cmd框中执行python,进入到python命令执行,即为配置成功. 2.执行过程中,提示缺少xlutil ...

  10. 一些ios牛人的博客

    王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒.http://onevcat ...