大多数JEE容器,存储后端系统…提供了一种使用SSL来获得安全通信的方法。
为了得到这个,我不太清楚一些问题:
我希望我解释得很好。
一个使用encryption来实现三个不同的目标,保密性,完整性和不可抵赖性。
服务器证书允许客户端validation远程服务器的身份,因为服务器名称是在证书中编码的。
当客户端接受服务器证书时,build立encryption连接,客户端可以通过发送正确的凭证来识别自己。
我需要每个连接点的证书吗?
几乎。 由于证书是针对主机名发出的,而不是针对该主机上的特定服务发出的,因此您可以为在该主机上运行的多个服务/端点使用相同的证书。
客户端证书通常是客户端独有的,而不是客户端运行的主机,也就是说,如果您在群集上部署应用程序,那么应用程序的所有实例经常会使用相同的客户端证书。 尽pipe您还可以看到集群中的每个节点都有自己唯一的客户端证书,该证书将由该节点上运行的所有应用程序共享,并且该集群应用程序的每个实例都会使用不同的证书来标识自己。
我可以只使用一个并分享吗?
有了上面提到的考虑,是的。
在生产环境中,我是否需要使用由可信CA颁发的证书?
当您完全控制客户端和服务器上的两个证书存储(完全不需要CA)(既不是可信的公共密钥,也不是内部的)时,您可以简单地复制公钥并使用这些validation终点。
否则使用CA颁发的证书比较好。
在testing或开发环境方面呢?
一样。
目前我所有的连接点(jee容器,存储系统)都运行在同一台机器上。
为了在这种情况下对通信的机密性和完整性构成威胁,攻击者已经有足够的权限访问服务器来绕过这种传输安全性,并直接访问数据。