首页 > 解决方案 > 嵌入式 Tomcat - 无需重新启动即可更新/删除证书

问题描述

我正在使用嵌入式 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实例替换数组中的它也不起作用。

有没有办法在SSLHostConfig不重新启动 Tomcat 的情况下删除或修改实例?

谢谢。

标签: ssltomcat9sni

解决方案


要使用新的证书文件(最初创建它时引用)更新 SSLHostConfig,可以这样做:

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

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


推荐阅读