【问题标题】:Why doesn't my HTTPS connection use TLS?为什么我的 HTTPS 连接不使用 TLS?
【发布时间】:2013-07-02 15:29:54
【问题描述】:

我希望你能原谅我的英语不好。

我很确定这是一个非常幼稚的问题,但我需要解决这个问题。

我在 JBOSS AS 7 服务器上运行应用程序,并通过在我的standalone.xml 文件中添加以下行来启用 HTTPS 连接:

<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
    <ssl name="ssl" password="password" protocol="TLSv1"/>
</connector>

现在,如果我尝试使用此网址通过网络浏览器访问我的应用程序:

https://localhost:8443/myapp/

在我接受自制证书后,浏览器告诉我连接是使用 TLS 协议建立的,并由 AES 128 加密。一切正常。

但是当我在服务器上使用 Wireshark 并尝试使用位于本地网络中的计算机访问我的应用程序时,没有 TLS 的痕迹,而只有 TCP 连接(似乎是加密的)。

另一方面,如果我尝试访问 HTTPS Web 服务器,Wireshark 会告诉我正在使用的协议是 TLS。我现在很困惑。

所以这是我的问题:我的连接是否还在 TLS 上工作?如果不是,可能是什么问题(可能是端口 8443 不是 HTTPS 的标准端口?)?

如果我不是很清楚,或者我没有提供足够的信息,请告诉我。

最好的问候, 道夫。

【问题讨论】:

    标签: ssl https jboss7.x wireshark


    【解决方案1】:

    我怀疑您的连接正在使用 TLS。 Wireshark 不会自动识别所有协议。它使用启发式方法(包括端口号)来尝试确定连接上的分层协议。如果您使用的是非标准端口(如 8443),那么 Wireshark 可能不会将连接解释为 TLS,即使它实际上是。

    当 Wireshark 自己没有选择正确的协议时,您可以手动告诉 Wireshark 将连接解码为特定协议。右键单击其中一个数据包,然后从上下文菜单中选择“解码为...”。然后选择 SSL 作为传输协议。 Wireshark 现在应该尝试将连接解析为 SSL/TLS 流。

    这里是documentation on Wireshark decoding

    【讨论】:

    • 谢谢!我怀疑是 8443 端口,但不是因为 Wireshark,感谢您指出这一点。执行“解码为...”操作让我看到了“密钥交换”、“加密握手”以及 TLS 协议需要的其他阶段。
    【解决方案2】:

    这确实是因为默认情况下,Wireshark 不考虑 8443 建立 HTTPS/SSL 连接。

    除了处理解码器之外,这可以在首选项中相当容易地配置:

    1. 打开首选项(菜单:编辑 -> 首选项,键:Ctrl+Shift+P)

    2. 选择协议 -> HTTP 首选项页面

    3. 那么对于 SSL/TLS 端口,使用“443,8443”(或视情况而定)

    然后下次捕获数据时,它将应用适当的 HTTPS/SSL 解码器。

    【讨论】:

    • 对我来说似乎很有用。不知道为什么这被否决了。
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2020-07-05
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多