Chrome浏览器为何无法识别我的http2服务器? [英] Why doesn't Chrome browser recognize my http2 server?

查看:116
本文介绍了Chrome浏览器为何无法识别我的http2服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我按照

I setup my Nginx conf as per Digital Ocean paper, and now http2 is available.

但是在Chrome(版本54.0.2840.98(64位))开发工具中,它始终位于HTTP 1/1上:

But in Chrome (Version 54.0.2840.98 (64-bit)) Dev tool, it's always on HTTP 1/1:

NAME             METHOD  STATUS  PROTOCOL
shell.js?v=xx..    GET    200     http/1/1

我的服务器正在运行Ubuntu 16.04 LTS,该版本同时支持ALPN&NPN,并且随附的openssl版本是1.0.2g.

My server is running Ubuntu 16.04 LTS which supports both ALPN & NPN, and the openssl version shipped with it is 1.0.2g.

我通过此工具站点检查了http2支持,结果为:

I checked http2 support with this tool site and the result is:

Yeah! example.com supports HTTP/2.0. ALPN supported...

也可以检查是否卷曲:

 $ curl -I --http2 https://www.example.com
  HTTP/2 200 
  server: nginx/1.10.0 (Ubuntu)
  date: Tue, 13 Dec 2016 15:59:13 GMT
  content-type: text/html; charset=utf-8
  content-length: 5603
  x-powered-by: Express
  cache-control: public, max-age=0
  etag: W/"15e3-EUyjnNnyevoQO+tRlVVZxg"
  vary: Accept-Encoding
  strict-transport-security: max-age=63072000; includeSubdomains
  x-frame-options: DENY
  x-content-type-options: nosniff

我还从控制台通过is-http2 cli进行了检查:

I also checked with is-http2 cli from my console:

is-http2 www.amazon.com
× HTTP/2 not supported by www.amazon.com
Supported protocols: http/1.1

is-http2 www.example.com
✓ HTTP/2  supported by www.example.com
Supported protocols: h2 http/1.1

为什么Chrome无法识别它?

Why doesn't Chrome recognise it?

如何同时使用Safari(v 10.0.1)进行检查?

How can I check it also with Safari (v 10.0.1)?

推荐答案

可能是以下两个原因之一:

Will likely be one of two reasons:

  1. 您正在使用防病毒软件,因为它是MITM的流量,因此将其降级为HTTP/1.1.关闭AV上的https流量监控,以直接连接到服务器.您可以使用一种在线工具来测试您的站点对HTTP/2的支持来检查是否是这种情况.

您正在使用较旧的TLS密码,尤其是Chrome不允许HTTP/2使用的密码( https://http2.github.io/http2-spec/#BadCipherSuites ),按照上述指南的第5步操作.使用 https://www.ssllabs.com/ssltest/扫描您的站点,以检查TLS配置和改善它.

You are using older TLS ciphers and specifically one that Chrome disallows for HTTP/2 (https://http2.github.io/http2-spec/#BadCipherSuites) as per Step 5 of above guide. Scan your site using https://www.ssllabs.com/ssltest/ to check your TLS config and improve it.

第三个原因是您的SSL/TLS中缺少ALPN支持库(例如,您正在使用openssl 1.0.1,并且需要一个1.0.2或更高版本),但是您已经确认支持ALPN,因此请跳过此答案.

The third reason is lack of ALPN support in your SSL/TLS library (i.e. You are using openssl 1.0.1 and need to be one 1.0.2 or later, for example) but you have already confirmed you have ALPN support so skipping that for this answer.

这篇关于Chrome浏览器为何无法识别我的http2服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆