【发布时间】:2020-03-27 03:11:08
【问题描述】:
根据this,在 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
【问题讨论】:
-
您能否验证您的应用程序正在链接到足够现代的 curl 版本?也许它正在某个地方使用旧版本。
-
@Botje,帖子中提到的curl版本是使用curl API直接从库中获取的,
curl_version_info(CURLVERSION_NOW),也使用ldd命令进行验证。