2010-03-24 144 views
5

我强调,如果我想在WCF中使用身份验证,那么我需要在我的服务器上安装一个证书,WCF将使用它来加密在我的服务器和客户端之间传递的数据。开发人员证书与购买的WCF证书

为了开发目的,我相信我可以使用makecert.exe util。制定开发证书。

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

和...

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

and ...

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

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

终于...

在该网站拥有证书安装提供支持HTTPS相同的证书可用于WCF服务,以及一个场景?

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

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

回答

9

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

但是,由于证书未由可信证书颁发机构签名,因此它不保证您的客户您是。让我换一种说法:如果你的服务是一个简单的网页,浏览器会说这个证书是无效的。

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

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

+0

我喜欢驾驶执照的类比!所以当我申请证书时,CA会访问我的网站,并以某种方式证明我的网站是合法的,然后颁发证书? – Remotec 2010-03-24 09:44:08

+1

@实际上不会,它不会访问您的网站,但是,它可以保证,因为只有网站的管理员才能安装证书。 – 2010-03-24 10:03:45

+0

明白了。但是,什么是阻止我购买www.abc.com的证书,然后在www.xyz.com上安装它?我认为当浏览器访问该网站时,它会检查访问的网站名称是否与证书名称相匹配? – Remotec 2010-03-24 10:24:42

3

“如果我在生产环境中使用此证书,可能发生的最坏情况是什么?”安全性将失败,无法完成整个服务。

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

“在这种情况下实际要做的证书是什么?” 客户端使用公钥来加密通信。这将机制保障,只有私钥(在这种情况下,服务器)的拥有者可以再次解密(公私密钥对是不对称加密)

希望这有助于

+0

感谢马文,所以世界上只有已知数量的CA,证书必须由其中一个生成?我的WCF服务如何知道这种情况?使用Windows Forms应用程序的客户端是否会收到错误或其他内容? (试图了解在这种情况下会发生什么*)。 – Remotec 2010-03-24 09:36:08

+0

CA的数量并不固定。任何人都可以成为CA(实际上,当您使用makeCert.exe时,您就是该证书的CA)。那么,哪些CA知道?它们被安装到您的证书存储中作为“是一个CA”。例如,当您安装“Windows操作系统”时会预先安装。 CA也是“链接”,i.o.w. CA#1可以说,我相信CA#2就像我相信自己。这允许在全世界分发CA. 您可以创建一个CA证书。您必须在所有客户端上将该证书安装为受信任的CA,然后才能使用您的开发证书。 – 2010-03-24 19:22:57

4
  1. 证书需求由所谓的证书颁发机构颁发以信任。自签名证书(由makecert等创建)不受信任,每个浏览到您网站的用户都会收到一个'无效证书'(更具体地说:'证书不可信,因为它是自签名')警告。所以,最坏的情况,人们不会去你的网站,因为他们不信任它。

  2. 您可以在生产中使用您的自签名证书,但由于上面解释的原因,不建议这样做。

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

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

总之,使用自签名证书的发展(寻找到一个叫SSL Diagnostics容易证书生成在IIS工具),但确实使用生产许可证生产!

+0

+1对于SSL诊断提示 – bob 2010-05-03 10:44:38