我需要在密钥库中添加生成的SSL证书后刷新/重启Tomcat。我正在使用Java REST调用来添加证书。
Dequeue Element
刷新/重启应该在同一个REST调用中进行。
我怎样才能做到这一点?
答案 0 :(得分:1)
这是一个高级别的安全问题!您不能/不应该使用REST调用重新启动服务器!这将为您的客户提供一种在数据中心中生成DOS拒绝服务黑客的非常简单的方法,可能会限制其他服务!
如果您需要管理与资产相关的较低级软件/硬件服务,则不应使用应用程序级服务和协议,但应实施低级管理协议,这是您安全基础架构的一部分!
在您的情况下更具体一点,我会使用虚拟环境,例如VMWare及相关协议和调用设置/重置凭据以及动态启动/重启服务器! VMWare虚拟服务很可能还有一些上层应用程序,这些应用程序具有REST服务,您仍然可以使用它(在SSL握手和所有相关安全句柄之后)从客户端调用HTTP REST来启动这些服务!
答案 1 :(得分:0)
我同意Gabor的安全漏洞。我不知道你的用例,但是如果你真的需要实现它,那么你需要创建一个简单的tomcat重启脚本并在添加证书后执行它。 解决方案在以下帖子中进行了描述:how to restart tomcat from a running webapp?
我建议您使用Apache Commons Exec
希望有所帮助。
答案 2 :(得分:0)
我现在可以重新开始了。我用批处理文件重启服务器。但重新启动后,如果我再次尝试任何REST调用,它将被绞死。它将在10-15分钟后工作。代码段
public void 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);
}
}