当前位置:首页 > 后端开发 > HTTPS加密流程超详解(一)前期准备

HTTPS加密流程超详解(一)前期准备

7个月前 (05-24)67

0.前言

前一阵子想写一个HTTPS的嗅探工具,之前只是大致了解SSL/TLS协议的加密流程,真正上起手来一步一步分析发现还是有点复杂的,于是我参考了wireshark的源码以及各种RFC,弄清楚了SSL/TLS从证书传递到密钥交换,再到数据传输的具体过程,算是小有收获,在这里分享给大家。

因为我想结合一个具体的简单的例子来做分析,所以本篇文章先介绍如何简单搭建一个环境来帮助我们下一步的分析,因此不打算亲自动手实践的朋友可以跳过直接进入下一篇,当然本篇文章还是有些小知识点的。

1.前期准备

1.1 制作证书

我们这里使用openssl,由于只是演示,所以就制作个简单的证书,CA签名什么的就不弄了。

生成服务器私钥:

openssl genrsa -out server.key 1024

生成服务器cer证书:

openssl req -new -x509 -key server.key -out server.cer -days 3650

合成pfx文件,会要求输入密码,输不输都可以,如果有密码,之后导入证书都要输入该密码:

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.cer

1.2 导入证书

这里使用IIS搭建web服务,点击IIS根节点,点击右侧Import,选择之前生成好的server.pfx。

HTTPS加密流程超详解(一)前期准备 _ Java侠

添加网站,类型选HTTPS,证书选择刚才导入的证书。

HTTPS加密流程超详解(一)前期准备 _ Java侠

访问网站,忽略一切警告,看看网站有没有搭好。

HTTPS加密流程超详解(一)前期准备 _ Java侠

1.3 更改默认SSL加密套件(Cipher Suites)

因为我们重在分析加密流程,所以我们选择一个简单的加密算法。

运行->gpedit.msc->Administrative Templates->Network->SSL Configuration Settings,双击SSL Cipher Suite Order,里面有一个加密套件的顺序,我们把TLS_RSA_WITH_RC4_128_SHA放到最前面,这样加密就会优先选择该套件。

HTTPS加密流程超详解(一)前期准备 _ Java侠

1.4 配置Wireshark解密SSL

为方便流程分析,我们借用Wireshark解密SSL流量。

打开Wireshark->Edit->Preference->Protocols->SSL

在RSA keys list添加一项,IP填服务器的IP,端口填443,协议填HTTP,key文件选择之前生成的server.key或者server.pfx。SSL debug file随便选择一个路径,SSL加解密的每个步骤都会写入该文件,很有助于我们的分析。

HTTPS加密流程超详解(一)前期准备 _ Java侠

设置好以后,访问网站,抓包可以看到SSL流量已经解密出来了。

HTTPS加密流程超详解(一)前期准备 _ Java侠

查看SSL debug file,可以看到SSL加解密的过程已经非常详细地写到里面了。

HTTPS加密流程超详解(一)前期准备 _ Java侠

至此,我们需要的环境算是搭好了,下一篇文章我们将结合代码,从算法和二进制的角度去详细分析一个完整的HTTPS加密流程。

作者:real王一
来源链接:https://www.cnblogs.com/realwy/p/8119843.html

标签: HTTPS

“HTTPS加密流程超详解(一)前期准备” 的相关文章

https协议了解,以及相关协议的解析

https协议了解,以及相关协议的解析

https协议解析,比较http和https区别,SSL安全协议的解析 HTTPS简介   HTTPS(全称:Hyper Text Transfer Protoc...

HTTP和HTTPS的详细区别

HTTP和HTTPS的详细区别

什么是HTTP HTTP(HyperText Transfer Protocol):是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器...

vue项目本地开启https访问模式

在实际开发中,我们会以https形式进行页面访问,但是根据vue-cli的版本不同,配置方式也有所差异,以下分别从vue-cli3.x和vue-cli2.x构建的项目分别进行...

华三交换机开启telnet ssh https登陆方式

华三交换机开启telnet ssh https登陆方式 1、开启telnet,ssh,https登陆方式 [H3C]telent ser...

Okhttp之Https

引子: okhttp是一款开源的网络访问框架,支持http以及https的访问。 今天,我研究的是如何用 okhttp库 来访问https 的站点。 研究的结论先摆出来...

HTTP及HTTPS简介

HTTP及HTTPS简介

背景 HTTP历史以及HTTPS的升级过程 前言 先复习下OSI(Open System Interconnect) 参考模型 和...

NodeJS如何发送HTTPS请求

http://blog.csdn.net/baby97/article/details/49702379 微信的接口都使用HTTPS协议,使用NodeJS需创建HTT...

全面了解http和https

全面了解http和https

序言 Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。 在学习Http和Http...

解决谷歌浏览器http链接自动跳转到https的问题

解决谷歌浏览器http链接自动跳转到https的问题

有些网址http协议和https协议是两个服务,有时候需要访问http地址,但chrome会默认转成https请求地址 输入 http://baidu.com...