c# - 请解释WCF中客户端证书的概念

标签 c# wcf ssl-certificate

我是 WCF 和网络安全的新手,所以我非常感谢对以下概念的清晰解释:

我明白,如果我想创建一个安全的网站连接,我需要有一个来自可信机构的 SSL 证书,例如Verisign、Thawte 等

现在我正在编写一个 SaaS 应用程序,它有一个中央网络服务,以及连接到中央网络服务的客户端应用程序的数量。我想安全地进行客户端和服务器之间的所有通信,所以我的服务器上有一个 SSL 证书。

但 WCF 现在带有“客户端证书”的概念,它似乎需要来验证我的服务器端证书,而我完全不明白。客户端将被世界另一端的一些匿名人员下载。我不知道他会或不会安装什么证书——我也不在乎!我想要的只是客户端和服务器之间的通信是安全的。我是否应该以某种方式在客户端上安装我自己的证书?

谁能给我解释一下这些概念吗?

(当你在看的时候,我有一个相关的问题 here 有赏金。)

最佳答案

不用担心 - 验证服务器证书不需要客户端证书。只要您想要实现的只是客户端确定他或她正在与您的服务器对话,并且没有其他人可以窃听或更改通信,您所需要的就是服务器证书。但是,正如我在对您的相关问题的回答中所述,客户端确实需要信任服务器证书(这可能是您的问题所在)。

当服务器想要以比使用密码更安全的方式验证客户端的身份时,客户端证书就会发挥作用。 SSL/TLS(包括 HTTPS,它只是基于 SSL/TLS 的 HTTP)确实支持客户端证书,它通常被称为“双面 SSL”或“带客户端身份验证的 SSL”。所有主流浏览器都支持这一点,WCF 客户端也支持这一点,但正如我之前所说,这不是必需的(除非服务器明确要求)。

关于c# - 请解释WCF中客户端证书的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064412/

相关文章:

javascript - 在c#中检索html td onClick事件值

c# - 等待异步方法完成

c# - WebClient网站登录

c# - 如果元数据值为空,Azure Blob 存储的 ListBlobsSegmentedAsync 方法不会返回元数据

javascript - ajax调用WCF服务(跨域)

java - LifecycleException 无效的服务器 SSL 协议(protocol)

.net - 本地未获取 "The maximum string content length quota (8192)"

windows-services - 无法连接到 net.tcp ://localhost. .. TCP 错误代码 10061

.htaccess - https ://www redirect on single domain certificate

java以编程方式将自签名证书添加到 keystore