如何列出客户端支持的所有 HTTP Cyphers

如何列出客户端支持的所有 HTTP Cyphers

我有一个 HTTPS 客户端(GSM 调制解调器),我需要知道支持的密码才能配置我的 nginx。但请求失败,甚至没有列在我的 nginx 日志中。

是否有一种简单的方法来设置服务器,只告诉我连接客户端支持哪些密码?

答案1

考虑到它可能与 OpenSSL 相关,我建议openssl ciphers -V

更一般的答案是,这在很大程度上取决于软件是否提供这样的命令,但在 Linux 上,OpenSSL 相当普遍。

编辑:没有注意到您想从服务器执行此操作,但在这种情况下,我建议运行openssl s_server它将为您提供有关正在建立的 SSL/TLS 连接的所有详细信息,包括客户端宣布的密码。

答案2

我会使用 Wireshark 记录流量,然后查看握手以查看失败之处。客户端会告诉您他所说的内容。

答案3

我首先想到的是,将 Apache 联机并启用密码日志记录。从源代码编译的版本默认启用它,在 extra/httpd-ssl.conf 中你会看到以下内容:

CustomLog "/opt/apache-2.2.20-p3/logs/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

然后连接到您的设备将在您的日志文件中显示用于连接的密码。

相关内容