脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - perl - 基于charles抓取https请求使用过程解析

基于charles抓取https请求使用过程解析

2021-08-18 00:47威武不能屈 perl

这篇文章主要介绍了基于charles抓取https请求使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用Charles抓https请求,这里需要设置连接端即浏览器或应用程序和Charles端,才能完成SSL Proxying的设置。

SSL 证书

连接端需要先安装Charles证书,以下介绍了如何在不同的浏览器或应用程序上信任Charles根证书

Windows/Internet Explorer

操作:

1、Charles-》Help-》SSL Proxying > Install Charles Root Certificate,会弹出一个窗口警告你没有信任CA Root Certificate

2、点击"Install Certificate” 按钮,加载导入证书的向导,这个证书必须要被导入到"Trusted Root Certification Authorities” 证书存储中,所以会覆盖当前自动证书存储的内容

3、证书安装完成后,需要重启IE才能生效

Mozilla Firefox

首选要确保firefox已连接到charles

检查的方法:

在firefox中访问链接,能够在charles中查看到firefox中的请求信息

firefox中安装Chalres根证书操作如下:

1、使用firefox访问:https://chls.pro/ssl

这时firefox会弹出提示:

基于charles抓取https请求使用过程解析

图1

2、点击确认安全例外,接下来会弹出如下窗口,勾选“信任由此证书颁发机构标识的网站”

基于charles抓取https请求使用过程解析

图2

3、点击确定,证书即安装并信任成功

macOS

操作:

1、Charles-》Help-》SSL Proxying > Install Charles Root Certificate

2、会打开钥匙串,在钥匙串中找到“Charles Proxy...”,双击打开

3、在信任选项里,使用此证书时:选择“始终信任”,如下

基于charles抓取https请求使用过程解析

图3

4、设置成功后关闭窗口时,会要求输入当前管理员密码来确认修改

5、重新启动safari,查看设置是否成功

iOS devices

1、首先要设置手机的wifi代理到Charles上

设置-》无线局域网-》当前连接的wifi,设置手动http代理

服务器为要Charles所在的电脑ip,Charles端口号默认是8888

基于charles抓取https请求使用过程解析

图4

2、在手机端打开safari,输入: https://chls.pro/ssl,safari会提示你安装证书,安装完成如下

基于charles抓取https请求使用过程解析

图5

3、如果是在iOS 10.3及以上系统版本,需要在通用>关于手机>证书信任设置中找到Charles证书,打开信任开关,更多信息可以参考官网文档(More information about this change in iOS 10).

ps:

描述文件与设备管理在iOS设置中的路径:设置-》通用-》描述文件

iOS Simulators

在iOS模拟器上安装Charles证书,首先先退出模拟器

1、打开Charles,点击Charles-》Help-》SSL Proxying > Install Charles Root Certificate in iOS Simulators,即会安装Charles根证书到你所有的iOS模拟器上

2、再次启动iOS模拟器时,就可以正常使用SSL Proxying

tvOS

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

Android

在Android内,要信任Charles SSL Proxying生成的 SSL 证书,需要在你的app内添加一些配置,也就是说你只能在自己的app内使用SSL Proxying。

关于网络安全配置详细的可见android官网文档

要添加的这个文件会覆盖系统默认的,能够使你的app信任已安装的CA

certificates(如 Charles根证书)。可以只将这个设置应用于debug包,以便宜生产包使用默认的信任配置

1、在你的app中添加文件res/xml/network_security_config.xml:

<network-security-config> 
 <debug-overrides> 
  <trust-anchors> 
   <!-- Trust user added CAs while debuggable only -->
   <certificates src="user" /> 
  </trust-anchors> 
 </debug-overrides> 
</network-security-config>

2、在manifest中添加一个reference:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
 <applicationandroid:networkSecurityConfig="@xml/network_security_config" ... >
    ...
  </application>
</manifest>

Google Chrome

在macOS中,参考上面macOS的说明。下面只适用于Windows

1、Charles-》Help-》SSL Proxying > Save Charles Root Certificate,保存为一个二进制文件(.cer后缀)到本地
2、在Chrome中,打开设置页,在设置页底部点击“高级”按钮打开高级选项,点击“管理证书”按钮
3、打开信任根证书tab,点击导入步骤1中保存的证书,根据提示导入,直到导入成功
4、导入成功后,步骤1中的证书文件就可以删除了

Java Applications

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

Python

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

抓取https请求Charles设置

上面安装好Charles根证书后,还需要在Charles中设置SSL Proxy才能正常抓取https的请求

1、点击Charles-》Proxy-》SSL Proxying Settings...

基于charles抓取https请求使用过程解析

图6

2、在SSL Proxying Settings页中SSL Proxying项中,点击Add,添加一个全匹配的域名和端口号:*:443,并勾选“Enable SSL Proxying”,点击OK保存

基于charles抓取https请求使用过程解析

图7

3、保存成功后,在上述浏览器或应用程序中即可正常抓取https请求

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/91815d0afb44

延伸 · 阅读

精彩推荐
  • perlperl命令行参数内建数组@ARGV浅析

    perl命令行参数内建数组@ARGV浅析

    这篇文章主要介绍了perl命令行参数内建数组@ARGV浅析,本文重点在于讲解@ARGV的用法,并通过实例来说明,需要的朋友可以参考下 ...

    perl教程网6162020-06-18
  • perlperl pop push shift unshift实例介绍

    perl pop push shift unshift实例介绍

    perl的pop跟push操作数组的最右边,shift跟unshift操作数组的最左边 ...

    脚本之家4612020-06-10
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一个pragma(预编译指示符),专门用来预定义全局变量,这些预定义后的全局变量在qw()列表中,在整个引用perl文件中皆可使用,即便使...

    perl教程网6812020-06-16
  • perlPerl从文件中读取字符串的两种实现方法

    Perl从文件中读取字符串的两种实现方法

    有时候我们需要从文件中读取字符串,这里简单介绍下, 需要的朋友可以参考下 ...

    脚本之家6252020-06-08
  • perlperl常见问题集合之二

    perl常见问题集合之二

    哪些平台上有 Perl?要到哪里去找? Perl的标准发行版(由 perl 发展小组负责维护)仅以原始码形式发行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz处取得。这个档...

    脚本之家2102020-05-29
  • perlPerl的经典用法分享

    Perl的经典用法分享

    Perl的经典用法分享,学习perl的朋友可以参考下 ...

    脚本之家6562020-06-06
  • perlPerl List::Util模块使用实例

    Perl List::Util模块使用实例

    这篇文章主要介绍了Perl List::Util模块使用实例,本文给出扫描符合条件的某个列表并取出第一个符合条件的、求1到1000之间的和 、求一组数字的最大值与最小...

    脚本之家4712020-06-22
  • perlPerl使用nginx FastCGI环境做WEB开发实例

    Perl使用nginx FastCGI环境做WEB开发实例

    这篇文章主要介绍了Perl使用nginx FastCGI环境做WEB开发实例,实现了路由系统和模板系统,需要的朋友可以参考下...

    Perl教程网2412020-06-18