V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
0576coder
V2EX  ›  程序员

我只想看看 curl 真正的执行过程

  •  
  •   0576coder · 2018-04-28 18:09:58 +08:00 · 5077 次点击
    这是一个创建于 2430 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:

    想看下 https 的真正握手过程(虽然网上的资料很多 但是我就想自己去看下)

    所以我就想直接用 strace 看一个 curl https://xxx.com 但是 mac 上只有 dtruss 那我就用这个看 但是执行这样的命令

    sudo dtruss curl https://xxxx.com > ~/Downloads/dtruss_result
    

    这个文件生成了 但是里面是空的

    我执行

    curl https://xxxx.com > ~/Downloads/dtruss_result
    

    这样是能把完整的 html 写入的


    我只想看看书上说的跟网上各位大佬抄来抄去说的 https 的过程 想亲自感受下单向认证跟双向认证的区别

    16 条回复    2018-04-28 23:45:41 +08:00
    linjianru
        1
    linjianru  
       2018-04-28 18:15:35 +08:00
    你应该下载 curl 编译成 debug 版本下个断点去看最方便吧。另外 https 的过程,如果是 SSL 握手的话,和 curl 关系不大,应该看 OpenSSL。
    coyove
        2
    coyove  
       2018-04-28 18:20:50 +08:00
    tcpdump
    0576coder
        3
    0576coder  
    OP
       2018-04-28 18:27:15 +08:00
    我其实要求很简单 我想看是不是像书上说的那样 先与服务器的 443 端口建立 tcp 握手 客户端发送 ssl 信息 服务端返回公钥 客户端检验服务端证书是否合法(客户端怎么检验?) 然后客户端告诉服务端我支持的加密方案 服务端选择加密方式返给客户端 客户端使用服务端公钥进行加密 服务端再用私钥解密 然后再进行 html 的传输 我只想深入了解这个过程 然后能让我把这个过程以文本的方式记录下来 我该怎么做
    liyvhg
        4
    liyvhg  
       2018-04-28 18:32:01 +08:00 via Android
    curl 自带,建议多研究一下 curl 的选项
    liyuhang
        5
    liyuhang  
       2018-04-28 18:37:32 +08:00
    nghttp2?
    yy77
        6
    yy77  
       2018-04-28 18:51:10 +08:00 via iPhone
    curl 的 verbose 差不多就挺全的了。
    goofool
        7
    goofool  
       2018-04-28 19:35:58 +08:00 via Android
    你需要 tcpdump 或者 wireshark
    liuxu
        8
    liuxu  
       2018-04-28 19:37:07 +08:00
    curl -v 了解以下
    virusdefender
        9
    virusdefender  
       2018-04-28 20:35:39 +08:00
    你需要的是 wireshark
    wizardoz
        10
    wizardoz  
       2018-04-28 20:40:45 +08:00
    很牛逼的感觉
    guog
        11
    guog  
       2018-04-28 20:58:31 +08:00 via Android   ❤️ 1
    curl -vvvv 了解下
    kongkongyzt
        12
    kongkongyzt  
       2018-04-28 21:05:26 +08:00
    我感觉你可能更需要 tcpdump
    0576coder
        13
    0576coder  
    OP
       2018-04-28 22:14:01 +08:00
    @kongkongyzt
    怎么用 tcpdump 抓 https
    salmon5
        14
    salmon5  
       2018-04-28 23:30:29 +08:00 via Android
    这么简单的问题被你弄得复杂无比
    居然用 strace 系统分析的
    协议分析 tcpdump+wireshark 完事
    kongkongyzt
        15
    kongkongyzt  
       2018-04-28 23:30:32 +08:00
    @0576coder #13 路由器上 tcpdump 抓包导出文件, 然后导入到 wireshark 里面, 添加上私钥然后就可以分析了. 当然如果你是本地抓包的话直接 wireshark 就可以了
    l30n
        16
    l30n  
       2018-04-28 23:45:41 +08:00 via Android
    抓包了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   947 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:20 · PVG 03:20 · LAX 11:20 · JFK 14:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.