【发布时间】:2015-10-11 20:06:25
【问题描述】:
我在 Ubuntu 15.04 上从 nghttp2 运行 HTTP2 服务器示例 (libevent-server.c)。我想使用 Wireshark 嗅探客户端-服务器之间的 HTTP2 数据包。
我没有使用任何网络浏览器作为客户端,所以关于如何在 Wireshark 中解释的 HTTP2 消息的提示 here 不适用于我的项目。我使用 libcurl。
由于 HTTP2 数据包是 TLS 内部的应用层,Wireshark 必须知道如何解密它;因此,我按照here 的指南为 Wireshark 提供了密钥。但是该指南警告说,“如果服务器发送 ServerKeyExchange 消息,您将无法解密数据。”不幸的是,我的 Wireshark 显示服务器密钥交换是由服务器发送的。
以下是libevent-server.c代码的sn-p:
SSL_load_error_strings();
SSL_library_init();
OpenSSL_add_all_algorithms();
OPENSSL_config(NULL);
我在将OPENSSL_config(NULL) 更改为OPENSSL_no_config() 后重新编译了代码,但仍然发送了服务器密钥交换。
如何禁用服务器密钥交换?
【问题讨论】:
标签: curl openssl http2 nghttp2