ssl - 调试自签名 https 连接

标签 ssl https openssl

我正在尝试使用 https 保护我的网络应用程序。所以我使用了下面的命令

openssl req \\
    -newkey rsa:2048 -nodes -keyout domain.key \\
    -x509 -days 365 -out domain.crt

生成证书/ key 对并上传到服务器。这是一个来自 qingcloud 的云服务器,它实际上绑定(bind)到我的负载均衡器(我认为这不重要,仅供引用)。

然后我做了以下测试:

curl --insecure https://my.domain.org

但是总是超时。

这是特定于供应商的,所以我的问题是:

调试 https 连接的技巧是什么?

最佳答案

But it always times out.

无论什么超时:如果它已经无法建立 TCP 连接,则在丢弃数据包之间可能存在防火墙。这种情况与 TLS 无关,因为 TLS 甚至还没有启动。如果它在 TLS 握手中超时,则可能是旧的 F5 负载平衡器的问题。

What are the techniques to debug a https connection?

只要它与 TCP 连接设置相关(就像在这种情况下?),您可以在适当的位置(在客户端、负载均衡器、服务器上)使用通常的数据包捕获(tcpdump、wireshark...)。 ..) 看看发生了什么。当然,还要查看任何类型的日志文件。

如果 TCP 连接本身已建立,您可以从调试 HTTPS 的 TLS 部分开始。 99% 的问题都与 TLS 握手有关,除了出色的 wireshark 之外,您还可以使用其他几种工具。但更重要的是了解 TLS 的工作原理以及可能出现的问题,以便您能够解释工具的数据。您可能会看看我关于 debugging SSL/TLS problems 的文章了解更多信息,因为再次复制所有内容毫无意义。

关于ssl - 调试自签名 https 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114423/

相关文章:

C# 使用 httpclient 发出 https 请求

java - Smack 4 在连接时抛出 "SSLHandshakeException: ValidatorException: SunCertPathBuilderException"

java - HTTPS Tomcat 重新路由请求

c# - 在套接字监听器中检查请求是否通过 HTTP 或 HTTPS

c++ - Qt SSl 错误 (QSslSocket : cannot resolve TLSv1_1_client_method)

http - 如何在 Go 中验证签名证书时间戳 (SCT)

Java (maven) 将 SSL 与 Shiro 结合使用 - Tomcat 7 的 https 端口插件无法正常工作

使用 Eclipse Paho JavaScript 客户端的 SSL/TLS

node.js - 强制从 Http 重定向到 Https

apache - 如何在 Ubuntu 20.04 上的 Apache 上启用旧的 TLS 1.0 和 TLS 1.1