【问题标题】:Embedded Jetty responds to clear http on port 443Embedded Jetty 响应清除端口 443 上的 http
【发布时间】:2017-05-07 11:33:35
【问题描述】:

我有一个使用嵌入式 Jetty 9.3.11 的 Java 8 应用程序,它想在端口 (TCP/443) 上侦听仅限 https 的连接。但是,当一个明确的 HTTP 客户端连接时,浏览器最终会下载一个 7 字节的小文件。这是文件的 od 输出:

$ od -t x1 download
0000000 15 03 03 00 02 02 50
0000007

要求不对仅 TLS 端口 443 上的明文 HTTP 做出响应。有趣的是,Jetty 9.1.3 不这样做。

我的问题如下:

  1. 这个文件是什么?我的 HTTPS-only 端口 443 上的明文 HTTP 请求可能会出现什么其他副作用?

  2. 如何阻止 Jetty 以这种方式响应清除 HTTP?

提前致谢。

【问题讨论】:

    标签: java ssl embedded-jetty tls1.2


    【解决方案1】:

    字节是:

    15 03 03 00 02 02 50
    

    地点:

    15    == TLS Alert Message Type
    03 03 == TLS Protocol version 1.2
    00 02 == TLS Frame length
    02    == Alert level Fatal
    50    == Internal Error
    

    当它无法理解非 TLS 客户端时,似乎是正常的 TLS 响应。

    【讨论】:

    • 感谢您的回答。你知道我怎么能禁用它吗?我希望服务器对 clear-HTTP 客户端没有响应。
    • 不可能的 ATM。 Java SSL/TLS Stack 目前结合 TLS/1.2 + ALPN 太复杂了。我们希望当 Java 9 推出时,凭借其内置的 ALPN 支持,这将成为可能。
    • 在非 TLS 上谈论 TLS 是没有意义的。与在语音通话中开始传真没有太大区别。似乎 TLS 堆栈已经接管了它不应该接管的所有连接。为什么这个流量甚至涉及到 TLS 堆栈?
    • 示例:如果您连接到 SMTP 服务器并发送非 SMTP 的内容,您会收到一个 SMTP 响应,告诉您它不理解您。 (绝大多数协议都是如此)。
    • 您的 ServerConnector 设置为 SSL/TLS,因此响应。
    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 2011-02-25
    • 2019-02-02
    • 1970-01-01
    • 2019-04-19
    • 2012-02-22
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多