java web应用程序是否有办法通过http请求获取有关安装在机器上的安全证书的信息,并在机器上安装了特定证书时有选择地授予访问权限。
基本上要求是,Web 应用程序应该只接受来自公司笔记本电脑的请求,否则必须使用适当的错误文本拒绝访问。
(这些可能是计算机上安装了某些证书的 win 笔记本电脑,也可能来自一组特定的静态 ip。)
java web应用程序是否有办法通过http请求获取有关安装在机器上的安全证书的信息,并在机器上安装了特定证书时有选择地授予访问权限。
基本上要求是,Web 应用程序应该只接受来自公司笔记本电脑的请求,否则必须使用适当的错误文本拒绝访问。
(这些可能是计算机上安装了某些证书的 win 笔记本电脑,也可能来自一组特定的静态 ip。)
是的,这可以使用 HTTPS 客户端证书来实现。确切的设置和配置取决于您的应用程序服务器和特定要求,但常见的情况是您创建公司内部 CA(认证机构)来颁发可能仅限于特定客户端 IP 地址的客户端证书并配置您的应用程序服务器的HTTPS 连接器需要客户端证书并信任您自己的 CA 颁发的证书。
正确配置完成后,客户端证书将通过 servlet 请求属性提供给 Web 应用程序:
X509Certificate[] certificates = (X509Certificate[])
request.getAttribute("javax.servlet.request.X509Certificate");
正如 jambjo 所说 - 您绝对可以通过 HTTPS 和他所描述的客户端身份验证来获取客户端证书。如果您将来需要以不同的方式重新配置网络,我建议通过静态 IP,证书更难被欺骗并且允许更大的灵活性。
其他几个想法: