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

2018-04-28 18:09:58 +08:00
 0576coder

问题:

想看下 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 的过程 想亲自感受下单向认证跟双向认证的区别

4894 次点击
所在节点    程序员
16 条回复
linjianru
2018-04-28 18:15:35 +08:00
你应该下载 curl 编译成 debug 版本下个断点去看最方便吧。另外 https 的过程,如果是 SSL 握手的话,和 curl 关系不大,应该看 OpenSSL。
coyove
2018-04-28 18:20:50 +08:00
tcpdump
0576coder
2018-04-28 18:27:15 +08:00
我其实要求很简单 我想看是不是像书上说的那样 先与服务器的 443 端口建立 tcp 握手 客户端发送 ssl 信息 服务端返回公钥 客户端检验服务端证书是否合法(客户端怎么检验?) 然后客户端告诉服务端我支持的加密方案 服务端选择加密方式返给客户端 客户端使用服务端公钥进行加密 服务端再用私钥解密 然后再进行 html 的传输 我只想深入了解这个过程 然后能让我把这个过程以文本的方式记录下来 我该怎么做
liyvhg
2018-04-28 18:32:01 +08:00
curl 自带,建议多研究一下 curl 的选项
liyuhang
2018-04-28 18:37:32 +08:00
nghttp2?
yy77
2018-04-28 18:51:10 +08:00
curl 的 verbose 差不多就挺全的了。
goofool
2018-04-28 19:35:58 +08:00
你需要 tcpdump 或者 wireshark
liuxu
2018-04-28 19:37:07 +08:00
curl -v 了解以下
virusdefender
2018-04-28 20:35:39 +08:00
你需要的是 wireshark
wizardoz
2018-04-28 20:40:45 +08:00
很牛逼的感觉
guog
2018-04-28 20:58:31 +08:00
curl -vvvv 了解下
kongkongyzt
2018-04-28 21:05:26 +08:00
我感觉你可能更需要 tcpdump
0576coder
2018-04-28 22:14:01 +08:00
@kongkongyzt
怎么用 tcpdump 抓 https
salmon5
2018-04-28 23:30:29 +08:00
这么简单的问题被你弄得复杂无比
居然用 strace 系统分析的
协议分析 tcpdump+wireshark 完事
kongkongyzt
2018-04-28 23:30:32 +08:00
@0576coder #13 路由器上 tcpdump 抓包导出文件, 然后导入到 wireshark 里面, 添加上私钥然后就可以分析了. 当然如果你是本地抓包的话直接 wireshark 就可以了
l30n
2018-04-28 23:45:41 +08:00
抓包了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/450744

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX