我们发现,使用curl 7.21或7.24来调用像下面这样的主机,在apacheconfiguration(我们有多个SSL虚拟主机!)时会产生错误。 而相同的命令运行顺利,curl7.34和更高。 有谁知道为什么?
命令: curl https://192.168.0.1/version -H "Host: example.domain.com" -k
这应该返回一个类似“1.2.1”的版本。 它确实与更新的卷发(testing7.34和7.38 / 39),但返回400curl7.21 / 7.24。
当用较旧的curl执行时,apache返回这个:
[error] Hostname 192.168.0.1 provided via SNI and hostname example.domain.com provided via HTTP are different
通常我认为这可能是一个问题,因为缺lessSNI支持,但我已经读过SNI应该已经添加到curl7.18已经。
所描述的行为是正确的。 SNI基于URL( 192.168.0.1 ),主机HTTP标头由您( example.domain.com )手动设置。
当Apache处理这个请求时,它在SNI中获得192.168.0.1 ,并使用该虚拟主机的configuration(可能是默认值)。 但是当有效载荷解密时,遇到不同的主机=> 错误 。