【问题标题】:Update server.xml file of Tomcat using Java使用 Java 更新 Tomcat 的 server.xml 文件
【发布时间】:2015-04-25 17:33:19
【问题描述】:

我是 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 更新 Connectortag 的 keystoreFilekeystorePass 参数。

所以它需要新的证书文件。

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

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

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

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

【问题讨论】:

    标签: java xml tomcat jakarta-ee server.xml


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 2015-11-01
      • 2021-11-22
      相关资源
      最近更新 更多