如何禁用ALPN扩展?
How to disable ALPN extension?
据此,在libcurl中,默认情况下启用CURLOPT_SSL_ENABLE_ALPN
选项。对于一个项目,我正在尝试禁用 ALPN 扩展,如下所示:
CURLcode res = CURLE_OK;
res = curl_easy_setopt(curl_, CURLOPT_SSL_ENABLE_ALPN, 0L);
if(res == CURLE_OK){
cout<<"Set CURLOPT_SSL_ENABLE_ALPN to 0L res = "<<res;
}else{
cout<<"Set CURLOPT_SSL_ENABLE_ALPN to 1L res = "<<res<<"t"<<curl_easy_strerror(res);
}
这给我抛出了一个错误:
Set CURLOPT_SSL_ENABLE_ALPN to 1L res = 48 An unknown option was passed in to libcurl
而且,我可以看到TLS握手中存在的ALPN扩展,能够用Wireshark看到它。如何禁用 ALPN 扩展?Openssl 版本: OpenSSL 1.1.0k 卷曲版本:7.67.0
在libcurl中,所有可能的选项都#define
在标题中,但这并不意味着所有选项都受支持。
看起来您的libcurl
不是使用 HTTP2 支持 (libnghttp2( 构建的。
为了使 ALPN 或 NPN 实际工作,curl_version_info()
应该包括CURL_VERSION_HTTP2
。
显然,如果你不使用支持 HTTP2 的 libcurl (libnghttp2( 进行编译,它会将CURLOPT_SSL_ENABLE_ALPN
和CURLOPT_SSL_ENABLE_NPN
视为未知选项,尽管 ALPN 和 NPN 独立于 HTTP2。这是 libcurl 中的一个错误。 我已经在这里的libcurl github存储库中报告了这种行为,他们修复了它,并且修复将在下一个版本中提供。
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- C++中的VLA,扩展名为std=C++11
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++返回 Numpy 数组的 Python 扩展模块
- 扩展可变参数模板中的变量名称
- 扩展C++生成的代码的模板参数类型名称
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- 将元组类型扩展为可变参数模板?
- 如何按文件扩展名引用文件夹中的文件
- HDF5Cpp 扩展复合数据集超板问题
- MSVC中的宏观扩展问题
- 嵌套参数包扩展失败
- C4204:使用的非标准扩展:非常量聚合初始值设定项
- [temp.variadic]中关于包扩展实例化的措辞
- 如何禁用ALPN扩展?