Java 集群中的Tomcat TLS会话恢复

Java 集群中的Tomcat TLS会话恢复,java,ssl,tomcat,openssl,Java,Ssl,Tomcat,Openssl,TLS允许通过会话ID或会话票证恢复会话。显示如何在ApacheWeb服务器和Nginx中执行此操作。特别是,Apache有一个允许TLS会话票证由特定密钥加密的密钥,而不是在启动时随机选择的密钥。这在集群中很有用,任何集群成员都可以通过共享密钥打开由另一个成员加密的票据 我在中找不到类似的功能。但是,我发现了一个名为的方法,它似乎正是我想要的: public void setTicketKeys(字节[]键) 设置此上下文的SSL会话票证密钥。 参数: 密钥-会话票证密钥 我还找到了使用此函

TLS允许通过会话ID或会话票证恢复会话。显示如何在ApacheWeb服务器和Nginx中执行此操作。特别是,Apache有一个允许TLS会话票证由特定密钥加密的密钥,而不是在启动时随机选择的密钥。这在集群中很有用,任何集群成员都可以通过共享密钥打开由另一个成员加密的票据

我在中找不到类似的功能。但是,我发现了一个名为的方法,它似乎正是我想要的:

public void setTicketKeys(字节[]键)
设置此上下文的SSL会话票证密钥。
参数:
密钥-会话票证密钥
我还找到了使用此函数的

我的问题是:我需要一个
OpenSSLSessionContext
实例来调用
setTicketKeys()
on。我应该如何获得此实例


编辑:如果可以通过配置完成,那就更好了

这实际上记录在:主要收获包括:

  • 仅通过配置是不可行的,因为您必须在上下文侦听器上明确设置标志(尽管您也需要配置连接器才能启用该功能!)
  • 当然,对于代理和SSL终止还有一些警告(例如,如果Tomcat终止SSL会话,您将无法恢复到它)
  • 不支持APR连接器(尚未?),仅支持NIO(2)连接器

您可以通过一些配置元素来完成这一点,而不是通过编写代码。@user207421:实际上最好进行配置。你能给我一些建议吗?你考虑过查阅文档吗?@user207421:当然。请看我文章的第二段。对不起,这个答案说明了什么是不能做的。我需要这样做,通过代码或配置。所以我需要的是一个答案,它显示了如何通过使用其中一个或两个来实现。此外,SSL会话跟踪是另一回事:使用SSL会话ID来跟踪用户,而不是cookies。