首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用ALPN扩展?

如何禁用ALPN扩展?
EN

Stack Overflow用户
提问于 2019-12-02 13:34:41
回答 2查看 1.2K关注 0票数 1

根据,在libcurl中,默认启用CURLOPT_SSL_ENABLE_ALPN选项。对于一个项目,我试图禁用ALPN扩展,如下所示:

代码语言:javascript
复制
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);
}

这让我犯了一个错误:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-04 11:50:47

显然,如果您不使用带有HTTP2支持的libcurl (libnghttp2)编译,则将CURLOPT_SSL_ENABLE_ALPNCURLOPT_SSL_ENABLE_NPN视为未知选项,尽管ALPN和NPN独立于HTTP2。是个小虫子。我已经在libcurl 这里上报告了这种行为,他们修复了它,并将在下一个版本中提供修复。

票数 0
EN

Stack Overflow用户

发布于 2019-12-02 14:07:15

在libcurl中,头中所有可能的选项都是#defined,但这并不意味着所有选项都被支持。

看起来您的libcurl不是用HTTP2支持(libnghttp2)构建的。

要使ALPN或NPN实际工作,curl_version_info()应该包括CURL_VERSION_HTTP2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59140051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档