我有一个Web应用程序(.war文件),可以部署在Tomcat或Jetty或任何其他servlet容器中。我想知道Servlet容器的SSL证书详细信息(例如证书过期时,谁是发行者等)。
是否可以从Servlet获取服务器证书或SSL详细信息?
答案 0 :(得分:1)
当然,只需使用SSLSocket在适当的端口上连接自己,获取SSLSession,获取对等证书。不要发送任何东西。
答案 1 :(得分:1)
从技术上讲,没有一个容器的SSL证书。服务器可能有许多连接器,每个连接器可能有许多证书,SNI仅用于连接时选择一个。
因此,对于可移植的servlet,您不应该在init期间获取详细信息,因为它们可能因每个请求而有所不同。
无论如何,您无法使用标准API执行此操作。在请求中,您可以将请求转发给一个码头请求,然后导航几个getter以获取Ssl EndPoint,然后从那里获取SslEngine,它将告诉您用于该请求的证书。