我需要在密鑰庫中添加生成的SSL證書後刷新/重新啓動Tomcat。我正在使用Java REST調用來添加證書。以編程方式刷新/重新啓動當前Tomcat實例
store.setKeyEntry("tomcat", keyPair.getPrivate(),
"password".toCharArray(), certs);
刷新/重新啓動應該發生在同一個REST調用中。
我該如何做到這一點?
我需要在密鑰庫中添加生成的SSL證書後刷新/重新啓動Tomcat。我正在使用Java REST調用來添加證書。以編程方式刷新/重新啓動當前Tomcat實例
store.setKeyEntry("tomcat", keyPair.getPrivate(),
"password".toCharArray(), certs);
刷新/重新啓動應該發生在同一個REST調用中。
我該如何做到這一點?
我現在可以重新啓動。我用批處理文件重新啓動服務器。但重新啓動後,如果我再次嘗試任何REST調用它將被吊死。它會在10-15分鐘後工作。代碼段
公共無效的run(){
try {
Thread.sleep(3000); // wait for response return
String path = SERVER_RESTART_SCRIPT;
Runtime rn = Runtime.getRuntime();
Process proc = rn.exec(path);
proc.waitFor();
System.exit(0);
} catch (IOException e) {
logger.error("IO exception: " + e);
} catch (InterruptedException e) {
logger.error("InterruptedException: " + e);
}
}
這是一個高級別的安全問題!你不能/不應該用REST調用重啓你的服務器!這會給你的客戶一個非常簡單的方法來在你的數據中心生成DOS拒絕服務攻擊,可能會限制其他服務!
如果你需要管理下級關係到你的資產,然後是軟件/硬件服務,你不應該使用你的應用程序級的服務和協議,但你應該實行低層次的管理協議,該協議是安全基礎架構的一部分!
要在你的情況更具體的我就如使用虛擬環境VMWare以及相關協議和調用來設置/重置憑證以及動態啓動/重新啓動服務器! VMWare虛擬服務很有可能還有一些上層應用程序,它們具有REST服務,您仍然可以使用來自客戶端的SSL握手和所有相關安全句柄來調用HTTP REST來啓動這些服務!
我同意關於安全漏洞的Gabor。我不知道你的用例,但如果你確實需要實現它,那麼你需要創建一個簡單的tomcat重啓腳本並在添加證書後執行它。 該解決方案在下面的帖子中描述:how to restart tomcat from a running webapp?
我會建議你使用Apache Commons Exec
希望有所幫助。
現在感謝我能夠重新啓動。我用腳本來重新啓動服務器。但重新啓動後,如果我再次嘗試任何REST調用它將被吊死。它會在10-15分鐘後工作 – Manjunath
您好,感謝現在我能夠重新啓動。我用腳本來重新啓動服務器。但重新啓動後,如果我再次嘗試任何REST調用它將被吊死。它會在10-15分鐘後工作。 – Manjunath