gpt4 book ai didi

java - 在 OSGi 包中使用 https 保护 Web 服务

转载 作者:行者123 更新时间:2023-12-01 13:36:37 24 4
gpt4 key购买 nike

我想保护 OSGi bundle 中使用 endpoint.publish() 发布的 Web 服务组件的通信安全。因此我正在努力解决三个问题。

  1. 如何使用信任库中的证书仅使用 IP 来构建 https 发布者?由于此 bundle 在嵌入式计算机上运行,​​而使用该服务的客户端不知道计算机名称。
  2. 如何在我的包中加载 *.jks keystore ?由于还有另一个类路径,我无法使用例如找到 *.jks 文件新文件(./truststore.jks)。是的,我在这里发现了类似的问题,但没有成功。
  3. 我不想实现某种身份验证。现在,我在头文件中发送用户名和密码(这就是我首先要确保通信安全的原因)。有没有办法在每个 Web 服务方法调用中不检查 header 中的用户名/密码?因为我有大约 20 个已发布的方法,并且复制相同的检查代码很奇怪。

运行时是Java 1.6,equinox 3.7.1。客户端是另一个 Web 应用程序(使用 php)。

一般来说,是否有安全发布 Web 服务的最佳实践(尤其是 OSGi bundle )?

提前致谢!

最佳答案

我按顺序回答:

  1. 在证书中使用 IP 地址作为通用名称 (CN) 可能不是一个好的形式。您最好在本地为该 IP 地址分配一个名称(例如在大多数系统上的主机文件中)。或者,您可以通过配置客户端来跳过名称验证 - 但在这种情况下,您接受 CA 颁发的任何证书。如果您对 PKI 有足够的控制权,例如使用自签名证书,这仍然是一个选项。

  2. 可以使用InputStream加载KeyStore(信任库是 keystore ),并且可以为资源创建输入流。请参阅this question on stackoverflow了解更多信息。

  3. 尝试使用 session 上下文将身份验证绑定(bind)到 session 而不是单个页面。显然,如果没有 SSL,这会不太安全,但有了 SSL 就应该没问题。

关于java - 在 OSGi 包中使用 https 保护 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21223159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com