我在本地运行Apache Tomcat,并使用OpenSSL安装了自签名证书。 我也有一个servlet运行。
我想要做的是以下几点:servlet接受POST参数,并回显使用服务器的PrivateKey签名的参数。 也就是说,将input参数作为整数处理,并将其提升到私钥的权力。
问题:甚至可以从servlet访问服务器的PrivateKey? 如果部署在其他主机上,则可能无法直接访问它。 那么有没有什么办法可以请求服务器用私钥“签名”一些数据呢?
提前致谢。
更改apache(xampp)中的web根目录
用查询stringhtaccess RewriteRule页面
在Ubuntu上与Apache一起使用Ldap
如何把nodejs和apache放在同一个端口80
Apache + PHP在UNIX上写入权限
自动杀死长时间运行的查询(MysqL),Apache Tomcat DataSource
htaccess:在RewriteCond中出现一些域
htaccess将别名redirect到主域
SVN,位置指令中的斜杠在浏览器上工作,但如果删除,则会出现403错误
这取决于容器的配置方式。 在一般情况下,容器的SSL配置将不能被它包含的servlet访问。 例如,在Apache Tomcat中,该连接器的SSL配置可以完全独立于servlet可访问的设置。 (另外,SSL可能由APR或Apache Httpd前端处理,这与Java密钥库配置没有多大关系)。
如果使用javax.net.ssl.*属性进行配置,则可能可以访问密钥库。 但是,这不一定是服务器连接器的SSLContext配置的方式。 在生产环境中在命令行上传递这些参数通常不是一个好主意。
你可以做的是从你的servlet中加载容器使用的密钥库,但是你必须事先知道它在哪里。 另外,我想假设一个托管服务会运行一个安全管理器打开的Tomcat,这可能会阻止你这样做。
请注意,您可以使用您自己的密钥库,在您的Web应用程序中提供(它甚至可以从类路径作为资源流加载)。 这个密钥库是否包含与服务器SSL层使用的私钥相同的私钥,取决于服务器的管理员(如果他们允许的话)。
如果我写的是weberver,我会竭尽全力防止从证书库中读取代码 – 我当然不会提供API调用!
通常,证书作为文件存储在网络服务器的文件系统上(并非总是),但是对于具有严重安全性的网站,这将被加密并需要密码才能解密。 由于您正在使用可能未加密的自签名证书,只需将文件中的证书导入密钥库。
如果您使用Java密钥库,则只要知道密钥库位置和密码,就可以从您的servlet访问它。
Servlet可以访问机器上的任何数据,包括密钥。 唯一的情况是,Apache和Tomcat从不同的用户名运行,并且锁被锁定,只能被Apache用户名访问。 在这种情况下,你可以做一个窍门,像在Apache用户名下的一个进程一样,读取文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。