繁体   English   中英

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

[英]Update server.xml file of Tomcat using Java

我是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"/>

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

这样就需要新的证书文件。

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

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

另外,我想知道是否有任何解决方案可以在没有tomcat重启的情况下应用我的更改。 有人可以帮我解决这个要求的正确方法。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM