问题标签 [alpn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http2 - 我需要使用 HTTP2 安装/启用 ALPN 吗?如何为 apache2 ubuntu 16.04 做呢?
我刚刚在我的 ubuntu 16.04 服务器上启用了 http2。当我在https://tools.keycdn.com/http2-test上运行测试时,它会验证 http2 是否受支持,但也会发出“不支持 ALPN”的警告。
我真的需要 ALPN 来获得 http2 的好处吗?如果是,我该如何安装它?我找不到安装/启用/激活 ALPN 的方法。
nginx - Nginx ALPN 支持 - 在线测试是否正确?
我正在使用最新的 libressl 2.5.3 检查 NGINX 上的 ALPN 支持。我想我已经正确设置了,但是当我尝试从以下位置进行测试时:
https://tools.keycdn.com/http2-test
告诉我:是的!DOMAIN 支持 HTTP/2.0
相反,当我尝试使用 opnessl 进行本地测试时,我们可以看到 alpn 在版本 h2 中是正确的
我做错了什么?
keycdn 提供的信息是否正确?
谢谢。
里卡多/Brqx。
apache - 如何禁用响应 nginx 或 apache 或 caddy 中的 http1 请求?
我有一个 http2 服务器,但默认情况下它响应 http1 请求。
我想停止我的服务器响应 http1 请求?
大多数浏览器可能使用 alpn 或 npn。是否有可能只宣传 http2 ?或应用程序协议的自定义列表?
jetty - Jetty Http2 客户端 SSL 连接超时
设置:Spring Boot 1.4.1
Maven依赖:
SSL 工厂:
连接片段:
我正在使用
这是我的 JVM 的合适版本。
结果是
在调试时设置码头记录器并没有太大帮助,最后记录的项目是:
请注意,使用相同密钥与同一服务器的连接是通过另一个软件进行的。
java - 在 main Jar 中引用 Jar 作为 javaagent 传递给 JVM
运行 jar1 时,我需要-javaagent
在我的 JVM args 中添加一个参数,但引用 jar1 中包含的 jar2。我试过了:
没有成功。如何在运行时确定 JAR 在运行系统中的位置?
(这是jetty-alpn-agent-2.0.0.jar
作为用于 HTTP/2 的 Java 代理运行的,与 Pushy APN 一起使用)
google-cloud-platform - 谷歌扳手 | java.lang.IllegalArgumentException:Jetty ALPN/NPN 未正确配置
所以我有一个我以前见过的问题,但是所有使用其他修复的尝试都没有奏效。我在使用 Google Spanner 时遇到问题,更具体地说是:
我收到以下堆栈错误的地方:
我尝试添加 maven 依赖项等,但每次它都没有解决我不断收到的错误。我正在使用带有端点的应用程序引擎,稍后此应用程序引擎将启动计算引擎。这是我当前的 pom.xml 文件:
非常感谢您提供的任何帮助或建议。
python - 无法使用 python 3.5 和 Hyper 向 APNS 发送 ALPN 请求
我正在尝试使用Hyper在我的 Python REST 服务器上实现 APNS 服务。由于 APNS 现在需要 HTTP/2 (ALPN) 协议,因此我无法get_response()
从 Hyper 连接。它引发以下错误。
我做了一些研究,结果发现 ALPN 需要 OpenSSL 1.0.2。我参考这篇文章从源代码编译了 OpenSSL 1.0.2i 和 Python 3.5.1。
我检查了 ssl 版本import ssl print(ssl.OPENSSL_VERSION)
并返回OpenSSL 1.0.2i 22 Sep 2016
。但ssl.HAS_ALPN
返回False。
我正在使用 Amazon Linux,如何使用 ALPN 向 APNS 服务器发送请求?谢谢你。
ssl - 在防火墙级别阻止 HTTP/2
我在阻止使用 HTTP/2 以强制浏览器使用 HTTP/1 作为 https 中的协议时遇到问题。TLS MITM 是不可能的,最多可以考虑类似 NFQUEUE 的用户模式包过滤,具体取决于处理开销。
从阅读 ALPN RFC 来看,当我看到包含 ALPN:http/2 的 ClientHello 时,是否提供警报响应或断开连接尚不清楚是否会使浏览器在没有 ALPN 的情况下重试。
如果我理解正确,修改 ClientHello 是不可能的,因为当服务器用 ServerHello 响应时它会导致校验和错误,因为更改 ClientHello 会使该数据包的 MAC 无效。
ALPN 中阻塞握手的行为是否与处理 TLS 版本回退相同,即 TLS_FALLBACK_SCSV ?
编辑:根据 openssl 的 t1_lib.c,如果服务器不知道 ALPN,它会忽略它。因此,如果服务器为包含 ALPN 的 ClientHello 返回 Alert,可能只是因为它不支持 TLS1.2,除了“alert”之外,无法向客户端发出“请在没有 ALPN 的情况下重试”的信号,这会导致客户端尝试 TLS1.1。
tls1.2 - 服务器中不支持 ALPN 的 HTTP/2 h2
在阅读了 HTTP/2 RFC (#7540)和 TLS-ALPN RFC (#7301)之后,当 ALPN 缺少一端时,我仍然无法弄清楚预期的行为。
假设我有一个使用 HTTP/2“h2”(通过 TLS)的客户端,它与支持 HTTP/2 但不在“服务器你好”中发送 ALPN 扩展的服务器通信。客户的预期行为是什么?
到目前为止,我见过的大多数客户端都认为服务器不支持 HTTP/2 并将连接降级到 http/1.1,但很少有人忽略(go-gRPC)继续使用 HTTP/2。
如果使用在客户端 ("h2") 和服务器 ("h2c") 之间执行 SSL 终止的 AWS 经典 LB,则此方案可能更实用。在此示例中,客户端发送值为“h2”的 ALPN 扩展,LB 在没有 ALPN 的情况下执行 SSL 握手(正如他的预期),最终 JAVA gRPC 由于 HTTP/1.1 降级而失败。
java - ClassNotFoundException: org/eclipse/jetty/alpn/ALPN,但我可以访问这个类
我有这样的代码:
这给出了这样的输出:
HelloWorldClient 使用 grpc,看起来 grpc 正在尝试动态加载 ALPN 类。我对吗?找不到此类,所以我有错误消息。但是请看一下,我可以访问这个类(我在第一行打印这个类)。有谁知道为什么会这样?我不知道 :/
我通过添加 VM 参数“-Xbootclasspath/p:”来运行配置选项彻底解决了这个问题,但我不明白为什么我需要这样做,而且我认为这不是优雅的方法。