我有一个客户问过我们应用程序中签署tomcat组件以及不同的jar。基本上,他们希望阻止任何人只是放入jar文件,重新启动tomcat并创建安全问题。
我的问题是,是否可以配置tomcat,以便在加载jar文件时验证它们是否已由特定证书签名,如果不能阻止tomcat启动?
答案 0 :(得分:2)
Tomcat本身不提供此功能。但是,作为一种解决方法,您可以与您的客户端一起使用DMZ服务器或其服务器上的位置,您可以放下文件。然后,他们可以让作业调度程序运行批处理脚本(在Windows上)或shell脚本(在linux / unix平台上),以使用jarsigner工具检查新到达的文件/ jar文件。 如果文件通过了测试,则可以将它们移动到部署tomcat目录,否则应该向服务器管理员发送有关此未签名文件的电子邮件。
命令示例:
jarsigner -verify jar-file
http://docs.oracle.com/javase/tutorial/deployment/jar/verify.html
答案 1 :(得分:0)
您可以启用Tomcat's security manager并编辑策略文件中的规则,以仅应用于已签名的代码。例如:
grant signedBy "yourClient", codeBase "file:${catalina.home}/webapps/someJar.jar" {
permission java.security.AllPermission;
};
这也可以应用于文件夹及其所有内容,请参阅Policy File Syntax。