使用SSL保护ASP.NET Web服务,而不在服务器上使用专用IP地址

时间:2010-02-21 15:33:58

标签: web-services ssl asmx security

我需要保护应用程序和Web服务之间的通信。 我拥有应用程序和Web服务,我想知道是否可以使用HTTPS来实现这一点。

我不需要证书就可以向我证明我是谁(!),所以我不想从证书颁发机构购买SSL证书。我只需要确保没有人可以拦截我传递的数据作为WebMethod参数;我可以创建免费证书并使用它来保证通信吗?

另一件事:我不希望被迫为我的Web服务获取专用的公共IP地址,因为它托管在共享的Web服务器上。

4 个答案:

答案 0 :(得分:2)

当然这是可行的,但取决于一些条件。

  • 创建自己的自签名证书。缺少证书颁发机构在您的情况下无关紧要,因为您的应用程序是您自己的消费者。
  • 主机必须允许您使用SSL证书配置IIS站点。希望他们提供的工具足够好。
  • 您的网站当前的共享IP不能绑定多个证书。您现在受到主持人的怜悯,不会将您的网站移动到其他IP。当时它可能在另一个站点上拥有或不具有SSL证书。基本上 - 第一个获胜。 IP不能拥有多个证书安全网站。

答案 1 :(得分:0)

many articles显示如何在IIS中创建和安装自签名证书。您需要记住的是,此证书无效,因为它不是由证书颁发机构提供的。在服务器端设置证书后,您需要使用ServerCertificateValidationCallback属性向客户端指示接受无效证书:

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true;

答案 2 :(得分:0)

如果没有专用IP地址,您无法使用SSL证书(自签名或其他方式)。除非您的共享托管服务提供商在您的IP上提供共享SSL证书,否则您将需要购买专用IP。

答案 3 :(得分:0)

如果您想解决这个问题,可以使用自签名证书并使用三级服务器(或使用自签名的IIS服务器)作为您自己的证书颁发机构。这将允许您免费生成自己的证书,然后由于您可以控制服务器,您只需将CA服务器添加为可信和中间根证书颁发机构。

Creating Certificate Authorities and self-signed SSL certificates