很少有人问及wcf与SSL&证书

时间:2014-04-02 08:57:12

标签: wcf ssl tcp https certificate

这里我要问几个关于wcf ssl& amp;证书

我是wcf的新手并且非常诚实地说我有基本的问题来理解SSL&证书。

1)我想知道当我们启用SSL时,每当我们需要使用证书时,或者当我们使用wcf附加证书时,相同的方式则会隐式使用SSL。

2)SSL&证书在概念上是相同还是不同?

3)当我们自己托管wcf服务时,我们可以启用SSL或证书......哪一个适用?

4)证书的tcp绑定与http无关。因此,当我们使用tcp绑定时,我们可以为tcp绑定启用SSL。

5)SSL与&之间的区别是什么?证书?

6)当我们在服务端使用证书时,然后客户端使用&调用他们总是需要安装证书的服务。如果不是那么当客户需要安装证书&什么时候不需要。一个人告诉我,只有在需要相互认证但我不知道相互认证的时候,客户才需要安装证书?

我知道我问过非常基本的问题。如果可能的话,请详细解释我的所有要点以澄清我的疑虑。感谢

更新

1)我想知道当我们启用SSL时,每次我们需要使用证书或 当我们使用wcf附加证书时,将会隐式使用SSL。

你说如下: - 启用传输安全性时,端点地址必须包含HTTPS协议, 否则,当你开始服务时会抛出异常。要使HTTPS在该端点上运行, 那么你需要一个绑定到指定端口的X.509证书。

为什么这么说: - 启用传输安全性时,端点地址必须包含HTTPS协议

当我们在IIS中托管我们的wcf服务时,

https开始发挥作用。假设我们在自托管主机上托管wcf服务 和tcp用作绑定,那么为什么我们需要在端点中包含https,因为你说启用了传输 安全性和端点地址必须包含HTTPS协议....它是否正确?可能是我无法理解 你要说的是什么能不能详细解释一下你要说的第1点

6)当我们在服务端使用证书然后客户端使用&他们总是打电话给他们 需要安装证书。如果不是那么当客户需要安装证书&什么时候不需要。 一个人告诉我,只有在需要相互认证时,客户才需要安装证书 但我不知道相互认证是什么?

这里我只想知道当wcf服务托管并附带证书时,它是强制性的 消费者需要在客户端使用证书的客户?

我想这不是强制性的。当考虑相互认证时,只有两个最终使用证书。 我是对的吗?

在相互认证服务器&客户端需要安装或使用相同的证书或客户端可以使用从abc.com购买的不同证书和xyz.com的服务器端购买证书。

请详细讨论我的上述两点。谢谢你的时间和答案。

1 个答案:

答案 0 :(得分:1)

好的,我们走了:

  

1)我想知道当我们每次需要时启用SSL   当我们用wcf附上证书时,使用证书或相同的方式   然后将隐式使用SSL。

启用Transport安全性时,端点地址必须包含 HTTPS 协议,否则在启动服务时将引发异常。要使HTTPS在该端点上运行,您还需要绑定到指定端口的X.509证书。

  

2)SSL&证书在概念上是相同还是不同?

SSL证书是一种X.509证书*。在TLS(SSL是其前身)中,几乎所有证书都是X.509证书。

  

3)当我们自己托管wcf服务时,我们可以启用SSL或   证书......哪一个适用?

使用Transport级安全性时,自托管服务将使用绑定到其正在侦听的端点端口的X.509证书。在这种情况下,设置服务证书不会产生任何影响。

  

4)证书的tcp绑定与http无关。所以当我们   使用tcp绑定然后我们可以为tcp绑定启用SSL。

是的, TCP 提供的Transport级别安全性默认为Windows安全性,即TCP over SSL。在TCP上使用SSL时,必须使用自托管服务上的SetCertificate方法显式指定证书。

  

5)SSL与&之间的区别是什么?证书?

如上所述,基本上SSL是X.509证书的一个子集 - 从技术上讲,这种关系并不是那么简单,但通常你会使用X.509证书进行SSL \ TLS。

  

6)当我们在服务端使用证书然后客户端结束   消费与调用他们总是需要安装证书的服务。如果   不是那时客户需要安装证书&什么时候不需要。   一个人告诉我,客户端只需要安装证书   相互认证是必需的,但我不知道什么是相互的   认证?

相互SSL身份验证是指客户端和服务器均提供数字证书,以便各方可以验证另一方的身份。如果您有兴趣,这里有一篇关于Mutual SSL Authentication的精彩文章。

虽然这不是必需的,但在使用Transport安全性时只有众多选项之一 - 请在此处查看更多选项:HttpClientCredentialType

您还可以使用TransportMessage级别传递凭据时在TransportWithMessageCredential级别执行安全性 - 然后您可以使用set Client Credentials来使用BasicHttpMessageCredentialType并改为使用UserName

*:其他类型的证书可以用于SSL \ TLS,例如OpenPGP - 但它很常见。