开发人员证书与购买的WCF证书

时间:2010-03-24 09:24:12

标签: wcf ssl certificate x509certificate

我认为如果我想在WCF中使用身份验证,那么我需要在我的服务器上安装证书,WCF将使用该证书来加密我的服务器和客户端之间传递的数据。

出于开发目的,我相信我可以使用makecert.exe util。制作开发证书。

如果我在生产环境中使用此证书,可能会发生什么最差

和...

为什么我不能在生产环境中使用此证书?

和......

在这种情况下,实际要做的证书是什么?

[编辑:添加了另一个问题]

最后...

在网站安装了证书以提供HTTPS支持的情况下,同样的证书也可以用于WCF服务吗?

关于我的应用程序的注意事项:它是NetTCP客户端和服务器服务。用户将使用他们用于以明文形式传递的网站的相同用户名和密码登录。我很乐意将明文中的u / n + p / w传递给WCF,但框架不允许这样做,并且证书必须到位。但是,由于预算限制,我不想购买证书!

(对不起这个可能很愚蠢的问题,但我真的不明白这一点,所以欢迎对此提出一些帮助。)

3 个答案:

答案 0 :(得分:9)

如果您在生产环境中使用开发人员证书,那么任何重大事件都不会发生,毕竟证书是证书,并且它提供的加密与任何商业证书相同。

但是,由于证书未由受信任的证书颁发机构签名,因此不保证客户您就是。让我以另一种方式说明:如果您的服务是一个简单的网页,浏览器会说证书无效。

在Web服务器中提供SSL的证书是一种证书,告知客户端该域是受信任且经过验证的域,并且证书颁发机构可以为其担保。

因此,makecert.exe制作的证书就像你在一张纸上写下你的名字,并告诉法律官员说这是你的驾驶执照。

答案 1 :(得分:4)

  1. 证书需要由所谓的证书颁发机构颁发才能被信任。自签名证书(由makecert等创建)不受信任,并且每个将浏览到您的网站的人都将收到“无效证书”(更具体地说:“证书不受信任,因为它是自签名的”)警告。所以,最坏的情况,人们不会去你的网站,因为他们不信任它。

  2. 您可以在生产中使用自签名证书,但出于上述原因,建议不要这样做。

  3. 证书用于在客户端和服务器之间建立安全连接(HTTPS)。接下来,它旨在验证服务器的身份。如果您的证书是自签名的,则无法保证您的服务器的身份。

  4. 在IIS中,如果在网站中安装证书,则在该网站下部署的所有WCF服务都可以使用该证书。

  5. 简而言之,使用自签名证书进行开发(查看名为SSL Diagnostics的工具以便在IIS中轻松生成证书),但确实使用生产证书进行生产!

答案 2 :(得分:3)

“如果我在生产环境中使用此证书,可能会发生的最坏情况”安全性将失败,导致整个服务失败。

“为什么我不能在生产环境中使用此证书?”
客户端不知道您生成的证书中指定的证书颁发机构,因此无法验证/使用证书。

“在这种情况下,实际要做的证书是什么?” 客户端使用公钥来加密通信。这将保证只有私钥的所有者(在这种情况下是服务器)才能再次解密它(私有 - 公共密钥对是非对称加密)

希望这有帮助,