我是tomcat Administration的新手。
我的要求是,管理员用户可以上传需要应用于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更新keystoreFile
标记的keystorePass
和Connector
个参数。
这样就需要新的证书文件。
在我的搜索中,有些人建议使用2个server.xml文件。有人告诉编辑server.xml文件。在tomcat docs中提到它,因为这个参数可以在系统环境中配置,并且可以直接更新。
我尝试更新系统环境参数思维是一个简单的解决方案,但没有成功(可能是我做错了)。
另外,我想知道是否有任何解决方案可以在没有tomcat重启的情况下应用我的更改。 有人可以帮我解决这个要求的正确方法。
处理此类要求的任何链接都会有所帮助。
答案 0 :(得分:0)
这应该是一个评论,因为我的建议不是一个完整的答案,但我会在评论中用尽空间。
只是为了确保。您想要更新用于验证SSL连接的证书,我要问的原因通常是tomcat在apache后面,而ssl由apache处理而不是tomcat。如果要添加证书以验证客户端的ssl(例如,他有自签名证书),则不要在连接器上执行此操作。
不是最简单的,如果在证书上传时将其重命名并将其全部放在同一路径上(并使用相同的密码),那么您不必更新server.xml。
您可以轻松检查更新是否无需重启(只需更换证书并查看会发生什么),但我对此表示怀疑。您可以检查连接器实现的源代码(只打开正确的一个,因为它们目前是3个实现),并查看是否可以修改它以触发密钥库更新。
最后,你真的想提供这样的功能吗?暴露越少,对证书的操纵越安全。