Tomcat 在Servlet中获取服务器证书/SSL

Tomcat 在Servlet中获取服务器证书/SSL,tomcat,servlets,ssl,jetty,ssl-certificate,Tomcat,Servlets,Ssl,Jetty,Ssl Certificate,我有一个web应用程序(.war文件),可以部署在Tomcat、Jetty或任何其他servlet容器中。我想知道Servlet容器的SSL证书详细信息(例如,证书何时过期,谁是颁发者等) 是否可以从Servlet获取服务器证书或SSL详细信息?当然,只需使用SSLSocket在适当的端口上连接到自己,获取SSLSession,获取对等证书。不要发送任何东西。从技术上讲,容器没有一个SSL证书。服务器可能有多个连接器,每个连接器可能有多个证书,SNI仅用于在建立连接时选择一个 因此,对于一个可移

我有一个web应用程序(.war文件),可以部署在Tomcat、Jetty或任何其他servlet容器中。我想知道Servlet容器的SSL证书详细信息(例如,证书何时过期,谁是颁发者等)


是否可以从Servlet获取服务器证书或SSL详细信息?

当然,只需使用SSLSocket在适当的端口上连接到自己,获取SSLSession,获取对等证书。不要发送任何东西。

从技术上讲,容器没有一个SSL证书。服务器可能有多个连接器,每个连接器可能有多个证书,SNI仅用于在建立连接时选择一个

因此,对于一个可移植的servlet,您不应该在init期间不获取细节,因为每个请求的细节可能不同


但是,您不能用标准API来实现这一点。在请求中,您可以将请求向下转换为jetty请求,然后浏览多个getter以获取Ssl端点和SslEngine,它将告诉您用于该请求的证书。

您在请求期间是否询问此信息,还是出于编程目的而将其脱机?我想在servlet初始化阶段(init()内部)获取信息,以便在每个请求(InInside service()内部)方法中使用它。@TimBiegeleisen OP特别声明“在servlet中”。我不知道这可能意味着什么。在你发表评论之前,他已经证实了这一点。