java - 使用Java更新Tomcat的server.xml文件

标签 java xml tomcat jakarta-ee server.xml

我是 tomcat 管理的新手。

我的要求是admin用户可以上传需要应用到tomcat的证书文件。

目前,我的tomcat server.xml,Connector标签看起来像

<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" clientAuth="false" sslProtocol="TLS" acceptCount="100" scheme="https" secure="true" keystoreFile="${catalina.base}/conf/tomcat.p12" keystoreType="PKCS12" keystoreAlias="tomcat" keystorePass="password" SSLEnabled="true"/>

在运行时,管理员用户可以使用提供的门户网站上传新的 .p12 证书文件和密码。 在服务器端,我必须使用 java 更新 Connector 标记的 keystoreFilekeystorePass 参数。

以便它获取新的证书文件。

在我的搜索中,有些人建议使用 2 server.xml 文件。有些人告诉编辑 server.xml 文件。在 tomcat 文档中提到,因为此参数在系统环境中是可配置的,并且可以直接更新。

我尝试更新系统环境参数,认为这是简单的解决方案,但没有成功(可能是我做错了)。

此外,我想知道是否有任何解决方案可以在不重启 tomcat 的情况下应用我的更改。 有人可以帮助我什么是满足此要求的正确方法。

处理此类要求的任何链接都会有所帮助。

最佳答案

它应该是一条评论,因为这是我的建议,不是一个完整的答案,但我会在评论中用完空间。

只是为了确定。您想更新用于验证您的 SSL 连接的证书,我问的原因通常是 tomcat 在 apache 后面,而 ssl 由 apache 而不是 tomcat 处理。如果您想添加证书以验证客户端的 ssl(例如,他有自签名证书),您不要在连接器上执行此操作。

这不是最简单的吗,如果在上传证书时重命名它并将它始终放在同一路径(并使用相同的密码),这样您就不必更新 server.xml。

您可以在不重启的情况下轻松检查更新是否有效(只需更换证书,看看会发生什么),但我对此表示怀疑。您可以检查连接器实现的源代码(只需打开正确的一个,因为目前它们是 3 个实现),看看您是否可以修改它以触发 keystore 更新。

最后,你真的想提供这样的功能吗?对证书的操纵越少,您就越安全。

关于java - 使用Java更新Tomcat的server.xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689959/

相关文章:

java - 使用 Woodstox 解析器解析 '&' 字符时出错

java - 您如何在 Java 中开发/部署 BIG 企业应用程序

java - 小程序类未找到错误

java - 静态变量值

java - Kafka Producer 将消息从 XML 文件发布到 Kafka Topic

java - 当文本溢出而不是换行时,TextView 会拉伸(stretch) CardView

java - 当我尝试在 TomCat 上部署并执行这个使用 Spring 的应用程序时,为什么会出现此异常?

java - 未知版本的 Tomcat 被指定为 8.0.24/Eclipse 4.4.2 (Luna)

java - 如何在 JFrame 和 JPanel 中设置玻璃 Pane 的位置

java - 如何显示数组中元素的位置?