finagle 升级时的 SSL 配置异常

SSlconfiguration exception on finagle upgrade

我最近从 21.4.0 升级到 finagle-core 22.4.0 并在应用程序中加载集成测试时看到了这一点。我使用 wiremock-standalone 版本 2.27.2。 Netty 版本是4.1.73.Final。我该如何解决这个问题?我假设它与某些版本有关。但是从哪里开始调试呢?

09:41:03.529 WARN finagle/netty4-2-1                io.netty.channel.ChannelInitializer [] [] [] [] [] [] [] [] [] [] [] Failed to initialize a channel. Closing: [id: 0x6e98560c]
com.twitter.finagle.ssl.SslConfigurationException: java.lang.IllegalArgumentException: ApplicationProtocols.Supported is not supported at this time for SslContextClientEngineFactory. Remote Info: Not Available
    at com.twitter.finagle.ssl.SslConfigurationException$.notSupported(SslConfigurationException.scala:18)
    at com.twitter.finagle.ssl.SslConfigurations$.checkApplicationProtocolsNotSupported(SslConfigurations.scala:246)
    at com.twitter.finagle.ssl.client.SslContextClientEngineFactory.apply(SslContextClientEngineFactory.scala:37)

此处报告了类似的问题:https://github.com/twitter/finagle/issues/913

在设置安全套接字 (SSL/TLS) 连接期间,您收到来自 finagle 的“不支持应用程序协议”异常。

github 问题链接到以下显示支持的应用程序协议的代码段: https://github.com/twitter/finagle/blob/develop/finagle-core/src/main/scala/com/twitter/finagle/ssl/ApplicationProtocols.scala#L19-L31

  private val alpnProtocolIds: Set[String] = Set(
    "http/1.1",
    "spdy/1",
    "spdy/2",
    "spdy/3",
    "stun.turn",
    "stun.nat-discovery",
    "h2",
    "h2c",
    "webrtc",
    "c-webrtc",
    "ftp"
  )

这可能意味着,例如,您的测试现在正在尝试与不受支持的 HTTP2 通信。您可能必须将其配置回 HTTP1.1

如果这没有帮助,您可以尝试使用以下 vm 选项调试完整的 SSL 通信:

-Djavax.net.debug=all

查看更多信息: