之前总结了使用keylog进行https流量分析的方法:

[https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog

今天总结一下使用服务器端证书私钥进行https加密信息解密的方法,如下:

一 server端

首先我有一个在4040端口开启了https服务的nginx server。使用如下证书与服务配置

╰─>$ ll ~/Keys/https/sni/ |grep test2
-rw-r--r-- tong tong .4K Sep : sni_test2.cer
-rw------- tong tong .7K Sep : sni_test2.key

二 client 端

服务启用后,在client端,分别使用DHE与AES算法进行秘钥协商通信,如下:

curl --cacert ~/Keys/https/root/root.cer  https://test2.www.local:4040 -v
* SSL connection using TLSv1. / ECDHE-RSA-AES256-GCM-SHA384
... ... curl -k --cacert ~/Keys/https/root/root.cer --ciphers AES128-GCM-SHA256 https://test2.www.local:4040 -v
* SSL connection using TLSv1. / AES128-GCM-SHA256
... ...

curl的算法支持列表,见如下链接的openssl小节

https://curl.haxx.se/docs/ssl-ciphers.html

使用tcpdump抓取以上两侧通信的pcap包

-rw-r--r--  root root .4K Oct  : -aes128.pcap
-rw-r--r-- root root .5K Oct : -dhe.pcap

三 wireshark

DHE协商算法,是不能被该方法解析的,只能使用keylog方式。任何一次一密的通信方式(完美前向加密)都不能使用该方法解析。

接下来,只分析aes128的数据包。

使用wireshark打开

在 edit->Preferences->Protocols->TLS->RSA keys list 中进行编辑,并将上文中提到的私钥sni_test2.key配置其中。如图:

之后,保存配置。可以看到加密的tls流量已经被成功解析了。

注意:

需要注意的是,key文件的格式,以及是否有密码。我的是没有密码的,格式如下:

╰─>$ file ~/Keys/https/sni/sni_test2.key
/home/tong/Keys/https/sni/sni_test2.key: PEM RSA private key

根据以前的经验,有密码的key可能会有一下问题。https://www.cnblogs.com/hugetong/p/6845436.html

[https][tls] 如何使用wireshark查看tls/https加密消息--使用私钥的更多相关文章

  1. [https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog

    姊妹篇: [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容 [https][tls] 如何使用wiresha ...

  2. [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容

    一,编译,启用strongswan的save-keys plugin ./configure --prefix=/root/OUTPUT --exec-prefix=/root/OUTPUT --en ...

  3. 开启 TLS 1.3 加密协议,极速 HTTPS 体验

    随着互联网的发展,用户对网络速度的要求也越来越高,尤其是目前在大力发展 HTTPS 的情况下,TLS 加密协议变得至关重要.又拍云在 HTTPS 的普及和性能优化上,始终做着自己的努力和贡献.2018 ...

  4. HTTPS详解二:SSL / TLS 工作原理和详细握手过程

    HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...

  5. 为什么Wireshark无法解密HTTPS数据

    为什么Wireshark无法解密HTTPS数据 导读 由于需要定位一个问题,在服务器上tcpdump抓取https数据包,然后下载到本地打开wireshark分析.然后我们下载域名私钥配置到wires ...

  6. SSL/TLS协议详解(下)——TLS握手协议

    本文转载自SSL/TLS协议详解(下)--TLS握手协议 导语 在博客系列的第2部分中,对证书颁发机构进行了深入的讨论.在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容 ...

  7. 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文

    内网项目启用Https配置手册 软件需求: OpenSSL https://www.openssl.org/ 已经安装了Java Jdk环境 制作前的需求: 已经配置了Jdk环境变量 安装好OpenS ...

  8. Android Https相关完全解析 当OkHttp遇到Https

    一.概述 其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了.首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baid ...

  9. HTTPS系列干货(一):HTTPS 原理详解

    HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷 ...

随机推荐

  1. jdbc如何处理事务

    Connection提供了事务处理的方法,通过调用setAutoCommit(false)可以设置手动提交事务:当事务完成后用commit()显式提交事务:如果在事务处理过程中发生异常则通过rollb ...

  2. python初级(302) 2 easygui简单使用

    一.复习之前的两个练习,巩固计数循环和条件循环 1.系统生成一个随机数1到5,然后让用户的猜测,若猜对了,提示恭喜你,猜对了,否则提示,对不起,你猜错了(提示,1到5的随机数为:secret = ra ...

  3. Shell中的通配符

    shell常见的通配符,注意与正则稍有不同: 字符 含义 实例 * 匹配0个或多个任意字符 a*b,a与b之间可以有任意长度的字符,也可以没有. 例如:aabcb,ab,azxcb... ? 匹配一个 ...

  4. Idea控制台中文乱码

    在菜单栏找到”run->editconfigration” 找到”server”选项卡 设置 vm option为 -Dfile.encoding=utf-8

  5. vue 里 this.$parent 作用

    this.$parent 可以访问到父组件 上所有的 data(){ 里的数据信息和生命周期方法,methods里的方法 }!

  6. [简短问答]C-Lodop中一些测试用的地址

    测试访问:访问http://localhost:8000欢迎页面试试进入欢迎页面http://localhost:8000,点欢迎页面的预览试试 查看下c-lodop启动界面,在设置里查看下当前启动的 ...

  7. QT笔记--组合框

    1 数据项 (1)位置 index 第一项位0 (2)文本text 这一项的显示值 (3) 关联数据,每一项可以关联一个数据比如整数或者文本类型数据 2 手工添加项 (1)additem:新数据项附加 ...

  8. celery无法启动的问题 SyntaxError: invalid syntax

    遇到了celery无法启动的问题,报错:SyntaxError: invalid syntax ,这是因为我使用的python版本为最新3.7.3 ,而async已经作为关键字而存在了 在 celer ...

  9. Lambda的延迟执行

    在兼顾面向对象特性的基础上,Java语言通过Lambda表达式与方法引用等,为开发者打开了函数式编程的大门. 下面我们做一个初探. Lambda的延迟执行 有些场景的代码执行后,结果不一定会被使用,从 ...

  10. Tomcat详解|乐字节

    大家好,欢迎来到乐字节小乐的Java技术分享园地.这次给大家分享的是Tomcat   一. 什么是 Tomcat Tomcat 是一个符合 JavaEE WEB 标准的最小的 WEB 容器,所有的 J ...