2015-02-24 87 views
4

我是tomcat管理的新手。使用Java更新Tomcat的server.xml文件

我的要求是,admin用戶可以上傳需要應用到tomcat的證書文件。

目前,我的tomcat的server.xml中,連接器標記看起來像

<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證書文件。 在服務器端,我必須更新keystoreFilekeystorePass使用java的Connector標記的參數。

因此它需要新的證書文件。

在我的搜索中,有些人建議使用2個server.xml文件。有人告訴編輯server.xml文件。在tomcat文檔中提到這個參數是可以在系統環境中配置的,並且可以直接更新。

我試圖更新系統環境參數的思想是簡單的解決方案,但沒有成功(可能是我做錯了)。

此外,我想知道是否有任何解決方案可以應用我的更改,而無需tomcat重新啓動。 有人可以幫助我什麼是這個要求的正確方法。

任何這樣的需求處理的鏈接將是有幫助的。

回答

0

它應該是一個評論,因爲這是我的建議不是一個完整的答案,但我會用盡評論中的空間。

只是爲了確保。您想要更新用於驗證您的SSL連接的證書,我問的原因通常是tomcat在apache後面,而ssl由apache而不是tomcat處理。如果你想添加證書來驗證ssl到客戶端(例如他有自簽名證書),你不要在連接器上進行。

這不是最簡單的嗎?如果在上傳證書時重命名並將其放在相同的路徑(並使用相同的密碼),所以您不必更新server.xml。

您可以輕鬆檢查更新是否可以不重新啓動(只需更換證書並查看會發生什麼),但我懷疑它。您可以檢查連接器實現的源代碼(只需打開正確的連接器實現它們是3實現),並查看是否可以修改它以觸發密鑰庫更新。

最後,你真的想提供這樣的功能。暴露程度越低,操作證書越安全。

相關問題