【发布时间】:2011-12-28 19:37:31
【问题描述】:
目标:一个安全的网络服务,将由两个客户端调用,两个客户端都在本地网络之外。保护 Web 服务最明显的方法是通过 https,从某个 CA 获取证书。问题是,这是一种愚蠢的浪费金钱。 CA 的全部意义在于它是一个公众信任的权威,所以我不必向每个想要使用我的网页的人验证我的身份,CA 正在为他们做这件事。但是,当我与极少数知名客户而不是广大公众打交道时,我不需要任何人为我担保。我们可以通过自己的渠道进行验证。
有没有办法做到这一点?理想情况下,我可以使用调用我的服务的人认可的证书来操作 https,如果没有其他人认为证书是有效的,我不在乎。无论如何,我不希望他们调用此服务。这应该是 B2B 数据传输(固定端点通信,而不是用于公共消费的服务)中相当普遍的需求,如果您正在传输实际文件,这很容易做到(PGP 风格的加密让您可以简单地验证和导入直接用对方的钥匙)。但我不清楚网络会话是否可以做到这一点。它肯定应该是,如果不是。我找到了一些自签名证书的文档,但它们似乎都仅用于开发目的,或仅供内部使用,并且很快就会过期或需要在同一个网络上。
有没有好的方法来实现这一点?还是我将不得不加密 Web 服务调用的内容?后者不太理想,因为它需要此服务的用户向他们的客户端应用程序添加加密代码(假设他们在一个平台上构建这些代码,该平台可以轻松添加对常见加密例程的支持,这可能是也可能不是true) 而不是仅仅依赖于标准的 https 框架。
我在 Windows (IIS/ASP.NET) 平台上工作,如果这有什么不同的话。
【问题讨论】:
标签: web-services iis https web