如何从 Java SSLSocket 访问最终协商的协议和密码? [复制]

2023-12-10

我一直致力于尝试组装一个基于 Java 的小型 HTTPS/SSL 服务器,主要是为了尝试获得一些可以相当便携地用于我们的测试/诊断目的的东西。

基于这里的示例,我得到了这样一个服务器应用程序的工作:

http://www.mybinarylife.net/2012/06/java-ssl-threaded-echo-server.html

但是,正如我所说,我想要的一件事是该服务器应用程序将为每个传入连接输出最终协商的协议和密码信息,类似于 Apache 自定义日志记录如何输出本页所述的协议和密码信息:

https://isc.sans.edu/forums/diary/Logging+SSL/18847/

In Apache, you can log the protocol version and cipher easily by logging the respective environment variable [1] . For example:

CustomLog logs/ssl_request_log  "%t %h \"{User-agent}i\" %{SSL_PROTOCOL}x %{SSL_CIPHER}x "

Logs SSL protocol and cipher. 

但我没有看到任何方法或任何东西可以在基于 Java 的应用程序中获取该信息?

SSLSocket 有获取启用协议等的方法,但似乎没有任何获取最终协商协议和密码的方法。

有谁知道这在Java中是否可行,如果可以,我该怎么做?

Thanks!!

Jim


我终于找到了我的问题的答案。基本上就是这里所说的:

如何查找 Java 中使用的 SSL/TLS 版本

从客户端上的 SSLSocket 获取 SSLSession 并使用其 getProtocol() 方法。

我能够使用 SSLSocket 上的 getSession() 方法来获取 SSLSession,然后使用 SSLSession 的 getProtocol() 和 getCipherSuite() 方法来获取我想要的信息。

Jim

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Java SSLSocket 访问最终协商的协议和密码? [复制] 的相关文章

随机推荐