仅在服务器端使用证书

时间:2019-10-20 17:13:37

标签: c# wcf ssl ssl-certificate

我正在处理一些WCF应用程序。我已经有客户端和服务器端。两者都使用WCF netTcpBinding或netNamedPipe进行通信。我也只想在服务器端使用证书,就像HTTPS一样。我在click处找到了非常有用的指南。

因此,根据本文,我对选项1感兴趣

  

选项一提供(C + I)不会对客户端进行任何身份验证,在这种情况下,将使用TCP SSL(而非HTTPS SSL)来提供机密性和完整性,并且将按以下方式配置服务

就目前而言,一切对我来说都是清楚的,不幸的是稍后我们可以阅读:

  

还需要在客户端计算机上安装服务证书的根证书颁发机构证书(通常在本地计算机/受信任的根证书颁发机构中),并且该服务需要具有以下行为才能为该服务指定证书

所以我的问题来了,有什么办法可以避免更改客户端计算机?如前所述,我正在寻找一种类似于WEB的解决方案,在该解决方案中,用户没有义务在自己的计算机上安装任何类型的证书。

也许我遗漏了一些东西,但是也许该规则仅在我使用自信任/开发人员证书时适用?如果我能从Verisign这样的受信任公司获得证书怎么办?

2 个答案:

答案 0 :(得分:1)

使用受信任的CA(例如GoDaddy等)颁发的证书时,您不需要安装任何东西。

答案 1 :(得分:1)

在客户端安装证书仅是为了确保服务器端的服务受信任并且我可以确保通信的安全。就像访问网站一样,在浏览网站之前,我们通常会获得该网站的内置证书,因此浏览器会提示该网站受信任。与自签名证书不同,网站证书是由受信任的第三方组织发布到特定主机(Web服务器)的,因此我们在客户端需要做的就是在访问网站之前安装权威的受信任的第三方证书。但是当我们在本地CA中配置自签名证书时,我们直接在客户端上安装服务器证书。
实际上,浏览器/ OS已经内置了一些权威的第三方证书。例如GlobalSign,VeriSign,因此我们只需要从它们购买证书并在服务器端进行配置,在这种情况下,客户端始终信任服务器。 除了安装服务器端证书之外,我们可能还需要在客户端上配置服务器端身份,通常是证书的公钥或主机名。如果我们生成客户端代理并通过添加服务引用来调用服务,则会自动生成这些配置。
随时让我知道是否有什么可以帮助您的。