以编程方式控制Tomcat提供的SSL证书

时间:2011-11-09 16:21:54

标签: api tomcat ssl certificate

是否可以以编程方式控制Tomcat在SSL协商期间提供的证书?我有一个非JKS格式的证书,目前我正在将它导出到PKCS#12,以便由Tomcat加载它。

我希望能够在Tomcat运行时更新所提供的证书,但这需要重新导出和重启,我希望避免这种情况。

有没有人知道我是否可以使用Tomcat加载/覆盖/更新自定义证书?

感谢。

1 个答案:

答案 0 :(得分:3)

我认为,使用完整的Tomcat无法进行证书热插拔,它不允许您的webapp代码通过API访问容器配置。但是如果你在embedded mode中运行Tomcat,你就可以做到。您需要从容器中删除旧的HTTP连接器,创建并初始化具有不同证书的新连接器,并将其添加到容器中。

在Tomcat 6中,它看起来像这样:

// your startup code
Embedded embedded = new Embedded();
// setup context, host, executor etc.
// ...
// your reload certificate API call
Connector con = createAndInitMyNewConnector();
embedded.removeConnector(oldCon);
embedded.addConnector(con);

我自己没有尝试过,但它应该有用。