ALPN,服务器不同意协议是什么意思?

ALPN,服务器不同意协议是什么意思?

当我在 curl 中使用各种调用时,我经常会看到这种情况。

我不确定这是否是导致我的某些返回结果出现 400 错误的根本原因,但作为新手,我只是非常好奇。

答案1

可能是服务器不支持阿尔及利亚国家铁路网络。例如,Debian 8.0(带有 OpenSSL 1.0.1k)仅支持 NPN2。但是 Ubuntu 16.04 附带 OpenSSL 1.0.2g,它支持 ALPN,所以我不确定这是不是问题所在。

我认为它不会导致 HTTP 400 错误,除非服务器强制执行 HTTP2。

答案2

克雷格·希克斯非常棒回答到 ”“服务器证书验证正常”但“ALPN,服务器不同意协议”“:

这句话

* ALPN, server did not agree to a protocol

含义仍是一个谜,但我猜它要么意味着 (1) 不同意 HTTP/2,要么不太可能 (2) 客户端询问是否在未经授权的情况下继续并被拒绝,然后使用授权。对于诊断输出来说,这真是一个糟糕的语言选择。Google 为该文字表达式返回了数千个结果。

我做了一个 HTTP2 测试(tools.keycdn.com/http2-test用于布赖恩回答回答类似的问题)在一个返回相同行的网站上,得到了以下结果:

HTTP/2 protocol is not supported.
ALPN extension is not supported.

也就是说,这条ALPN, server did not agree to a protocol线可能只是因为终端不支持 ALPN 而出现(应用层协议协商 (ALPN) 是用于应用层协议协商的传输层安全性 (TLS) 扩展)。

相关内容