为什么通过net.tcp启用SSL(传输安全性)比使用HTTP要困难得多?

Gre*_*ter 6 .net ssl wcf nettcpbinding

实现通过HTTP使用WCF进行传输级安全性的Web服务非常简单:为我的WCF服务启用SSL

通过net.tcp实现与WCF一起使用传输级安全性的Web服务非常困难:具有netTcpBinding和证书传输安全性的WCF

...而net.tcp解决方案通常在服务器端和客户端都涉及到类似的东西:

 <serviceCertificate
       findValue="MyServiceCertificate"
       storeLocation="LocalMachine"
       storeName="My"
       x509FindType="FindBySubjectName" />
Run Code Online (Sandbox Code Playgroud)

在HTTP情况下,您甚至不需要在客户端或服务器上提及证书.在NET.TCP案例中,您必须在我阅读的大多数源中在客户端和服务器上存储,定位和指定证书.

做神奇的事情是什么让你不必担心HTTP模式下的证书?而且,为什么在使用net.tcp时你无法使用这种魔法?

vcs*_*nes 6

因为在HTTPS上使用WCF时; IIS管理与证书的协商(就像普通SSL一样).由于没有内置用于TCP的IIS服务器,因此您必须自己完成.您仍在使用证书+ WCF进行HTTPS,但配置是在IIS完成的.

编辑:

对于客户端,您还有另一个软件.通过SSL浏览网站时,浏览器会为您处理所有这些内容.SSL over HTTP具有标准协商模式,因为它是HTTPS协议的一部分.对于TCP,这不是协议的一部分,因此客户端必须自己处理.