嵌入式Tomcat-更新/删除证书而无需重新启动

时间:2019-09-18 16:34:01

标签: ssl tomcat9 sni

我正在使用嵌入式Tomcat,并在创建连接器时使用SSLHostConfig添加SNI证书。效果很好。

我还可以添加证书,而无需使用以下方式重新启动Tomcat:

SSLHostConfig sslHostConfig = new SSLHostConfig();
sslHostConfig2.setHostName(host);
sslHostConfig2.setCertificateFile(path);
connector.addSslHostConfig(sslHostConfig);

这也完美地工作。

此外,无需重新启动Tomcat,就可以使用以下命令获取所有现有SSLHostConfig实例的列表:

SSLHostConfig[] sslHostConfigs = connector.findSslHostConfigs();

但是,我不知道如何更新或删除现有的SSLHostConfig实例。在数组中将其设置为null无效。同样,用新的SSLHostConfig实例将其替换为数组也不起作用。

是否可以在不重新启动Tomcat的情况下删除或修改SSLHostConfig实例?

谢谢。

1 个答案:

答案 0 :(得分:0)

要使用新的证书文件(最初创建该证书时已引用)更新SSLHostConfig,

    Http11NioProtocol protocol (Http11NioProtocol)connector.getProtocolHandler();
    protocol.reloadSslHostConfig(host);

当然,这假定您使用Http11NioProtocol作为连接器的协议处理程序。