问题标签 [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.

0 投票
1 回答
613 浏览

java - 将 alpn-boot jar 添加到 bootclasspath

与我们的开发团队合作以使苹果推送通知正常工作,我需要一些帮助才能将 jar 放入 java 引导类路径。我们正在运行 RHEL 6.9 和 java8。

当我尝试正常操作时: java -Xbootclasspath/p:/opt/batch/lib/pathtojar.jar 我似乎没有得到任何确认或错误。只需打印我们的 java 帮助页面。

我还确认我们为我们的 java 版本使用了正确的 alpn-boot jar。我可能只是碰到了一堵我现在看不到的墙,所以任何帮助都将不胜感激。

0 投票
4 回答
6681 浏览

netty - 将 spring-webflux 微服务切换到 http/2 (netty)

有没有人在 netty (http/2) 中使用 spring-webflux?

弹簧文档说:

您可以使用server.http2.enabled配置属性在 Spring Boot 应用程序中启用 HTTP/2 支持。这种支持取决于所选的 Web 服务器和应用程序环境,因为 JDK8 不支持开箱即用的协议。Spring Boot 不支持 HTTP/2 协议的明文版本 h2c。所以必须先配置 SSL。

旗帜server.http2.enabled对我不起作用。

我在用着:

  1. JDK8
  2. org.springframework.boot:spring-boot-starter-parent:2.0.2.RELEASE
  3. Netty 4.1.24.Final

请看一下我的配置:

应用程序.yml

HTTPS 也可以。但是协议还是一样的(http/1.1)

在此处输入图像描述.

这是 ALPN 的问题吗?我应该将我的应用程序升级到 JDK10 吗?我将不胜感激任何建议。谢谢。

0 投票
1 回答
3595 浏览

upgrade - HTTP/2 与 Ubuntu 18.04

我想在这个网站上尝试 HTTP/2:https ://www.alebalweb-blog.com/

我最近使用 PHP 7.2、Apache/2.4.29 等将服务器更新到 Ubuntu 18.04

我做了:sudo a2enmod http2

添加:

在我的 VirtualHost SSL 中。

并重新启动 Apache。

SSL 证书由 Let's Encrypt 提供。

结果是:

我觉得真的很奇怪是这样的:

这是什么意思?

HTTP/2 测试 说:

我觉得我错过了一些大事......你能帮我理解什么吗?

0 投票
1 回答
76 浏览

php - 远程网站 ALPN 支持检测

是否可以使用 php curl 检查对 ALPN 的支持?

例如:if ($is_alpn == true) {echo 'ALPN supported';}

PS curl 7.49.0,php 7.0,openssl 1.0.1t

0 投票
2 回答
195 浏览

shell - 如何使用 sed 在特定行上方的 shell 文件中添加新行

我想为文件添加一个新行apache-jmeter 4.0/bin/jmeter

文件最后2行如下

我想在文件的最后一行上方添加一行,以使输出如下所示

0 投票
1 回答
890 浏览

c# - 使用 ALPN 通过 TLS 连接

我正在尝试使用 C# net core 2.1 类库连接到 Amazon IoT MQTT 代理。我的要求是我必须使用端口 443,这意味着根据亚马逊的文档,我必须使用支持 ALPN 的连接。

.Net Core 2.1 现在有支持这一点的方法,所以我尝试以下代码:

(注意:我可以使用端口 8883 而不是 443 尝试相同的代码,它可以正常连接并发送我的 MQTT 数据,所以我知道我的证书和端点地址是正确的。)

现在,据我了解,我应该看到(我正在使用 wireshark)添加到客户端 Hello 握手协议的扩展,类似于以下内容:

但是我没有得到那个扩展,并且端口 443 上的连接失败。

我在设置协议列表时遗漏了什么吗?我没有从中得到任何错误,但由于这是一个相当新的版本,因此没有很多参考资料可以寻找提示。

0 投票
2 回答
2452 浏览

security - 异常 ALPN 配置不正确

我正在尝试使用 scio 和 apache Beam 从 scala 创建一些云指​​标来执行数据流任务。
我收到以下错误:

我按照该 URL 上的步骤添加了一个 JVM 参数: -Djavaagent=/Users/user/Downloads/jetty-alpn-agent-2.0.6.jar

我也有环境变量:GOOGLE_APPLICATION_CREDENTIALS=/etc/recsys/recsys-dev.json

编码:

我能得到一些帮助吗?

0 投票
0 回答
981 浏览

java - 使用 GRPC 设置 SSL - 找不到 ALPN

我想在我的 GRPC 服务器上设置 SSL。这是我正在做的事情:

现在我得到一个 ClassnotFoundException:

如果我们查看JettyTlsUtil.isJettyAlpnConfigured()方法,我们将看到 Class.forName("org.eclipse.jetty.alpn.ALPN", true, null);

现在,我的类路径中有 ALPN。我还根据此处提供的表格设置了我的依赖关系https://github.com/grpc/grpc-java/blob/master/SECURITY.md#transport-security-tls

gRPC 的人们不建议使用 JDK 作为 SSLProvider。因此,我下载了 io.netty.internal.tcnative.SSL,它是 OpenSSL 的 SSLProvider。然而,gRPC 无法识别我在这里有可用的 OpenSSL:

编辑: 我能够通过添加 VM 参数 -javaagent:C:/path/to/jetty-alpn-agent.jar 使其工作

这使得它可以与 JDK 作为 SSL 提供程序一起使用。我仍然不明白为什么 grpc 无法识别我有可用的 OpenSSL。我netty-tcnative-boringssl-static的类路径中有。

0 投票
0 回答
1431 浏览

microsoft-edge - 禁用 Microsoft Edge 的 HTTP2

HTTP2是否可以在边缘设置或配置文件中禁用?

或者也许可以禁用ALPN

0 投票
1 回答
1391 浏览

java - 使用 jdk8 加密以启用 http2 的 ALPN

我一直在搜索如何使用conscrypt-openjdk-uber-1.4.1.jar为 jdk8 实现Conscrypt SSL 提供程序,以支持ALPN与服务器建立http2(使用 apache httpclient 5)连接,因为jdk8 默认不支持 ALPN或另一个解决方案是迁移到 jdk9(或更高版本),这目前不可行,因为我们的产品严重依赖 jdk8

我一直在广泛搜索一些要实现的文档或示例,但我找不到。

我尝试将 conscrypt 提供程序作为默认值插入,我的程序将其作为默认提供程序,但仍然无法连接 http2 服务器,我的示例如下,

这个程序给出的输出为

org.apache.hc.core5.http.ConnectionClosedException:连接关闭 org.apache.hc.core5.http.ConnectionClosedException:连接在 org.apache.hc.core5.http2.impl.nio.FrameInputBuffer.read(FrameInputBuffer.java :146) 在 org.apache.hc.core5.http2.impl.nio.AbstractHttp2IOEventHandler.inputReady(AbstractHttp2IOEventHandler.java) 的 org.apache.hc.core5.http2.impl.nio.AbstractHttp2StreamMultiplexer.onInput(AbstractHttp2StreamMultiplexer.java:415) :63) 在 org.apache.hc.core5.reactor.InternalDataChannel.onIOEvent(InternalDataChannel.java:117) 在 org.apache.hc.core5.http2.impl.nio.ClientHttp2IOEventHandler.inputReady(ClientHttp2IOEventHandler.java:38) 在org.apache.hc.core5.reactor.SingleCoreIOReactor 中的 org.apache.hc.core5.reactor.InternalChannel.handleIOEvent(InternalChannel.java:50)。processEvents(SingleCoreIOReactor.java:173) at org.apache.hc.core5.reactor.SingleCoreIOReactor.doExecute(SingleCoreIOReactor.java:123) at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.execute(AbstractSingleCoreIOReactor.java:80)在 org.apache.hc.core5.reactor.IOReactorWorker.run(IOReactorWorker.java:44) 在 java.lang.Thread.run(Thread.java:748)

如果我打印提供程序和版本,它将打印为Conscrypt 版本 1.0JDK 1.8.0_162,但仍然无法连接到 http2 端点

如果我使用 jdk9 与默认提供程序连接,相同的代码块可以完美运行,我在 conscrypt 配置中缺少什么?

任何帮助表示赞赏

提前致谢