Tomcat 浏览器用于向服务器发送请求的SSL协议

Tomcat 浏览器用于向服务器发送请求的SSL协议,tomcat,servlets,ssl-certificate,tls1.2,Tomcat,Servlets,Ssl Certificate,Tls1.2,我有一个Servlet,客户端(浏览器)可以向它发出请求。我想知道哪个SSL协议版本用于这个请求,比如我的servlet中的SSL/TLS/TLS 1.1/TLS 1.2。有谁能指导我完成这件事吗 我使用的是Java8,Tomcat8.5.9 提前感谢根据,Tomcat将此信息存储在请求属性javax.servlet.request.cipher\u suite和org.apache.Tomcat.util.net.secure\u protocol\u版本中。所以你应该能够做到: public

我有一个Servlet,客户端(浏览器)可以向它发出请求。我想知道哪个SSL协议版本用于这个请求,比如我的servlet中的SSL/TLS/TLS 1.1/TLS 1.2。有谁能指导我完成这件事吗

我使用的是Java8,Tomcat8.5.9

提前感谢

根据,Tomcat将此信息存储在请求属性
javax.servlet.request.cipher\u suite
org.apache.Tomcat.util.net.secure\u protocol\u版本
中。所以你应该能够做到:

public void doGet(HttpServletRequest request,
                  HttpServletResponse response) {
    String cipherSuite = request.getAttribute("javax.servlet.request.cipher_suite");
    String protocolVersion = request.getAttribute("org.apache.tomcat.util.net.secure_protocol_version");
...
}

要意识到其中一些与您配置Tomcat的方式有关。例如,我经常将Apache放在Tomcat前面,并且从Apache到Tomcat有一个非SSL连接。在这种情况下,Tomcat将无法为您提供所需的信息。

根据Java Servlet规范,Tomcat通过进一步的
javax.Servlet.request.*
properties提供所有这些以及更多信息,并且无论前面是否有Apache HTTPD并终止SSL连接,它都会这样做。HTTPD将其全部提供给Tomcat。@stdnubar String protocolVersion=request.getAttribute(“org.apache.Tomcat.util.net.secure_protocol_version”);如果我直接访问我的站点,也就是说中间没有apache服务器,上面这一行会给出SSL协议版本,但是如果请求是通过apache的,那么它会给出null,你知道为什么会这样吗?@AmeySawant请看这里: