【问题标题】:Confusion with services and certificates with an anonymous client与匿名客户端混淆服务和证书
【发布时间】:2010-10-29 08:17:41
【问题描述】:

我设置了一个通过 netTcpBinding 使用传输安全的 WCF 服务。用于服务安全的证书由我们为开发创建的 CA 签名。

有人可以解释我的匿名客户端如何连接并与服务通信而无需在本地安装相同的 CA 吗?我对证书比较陌生,并假设必须在本地安装 CA,客户端才能解密来自服务的数据。

服务和客户端都在 Windows 机器上,客户端是 Windows Forms .NET 3.5 应用程序。

【问题讨论】:

    标签: .net wcf web-services certificate security


    【解决方案1】:

    嗯,等式有两个部分:

    • 您可以拥有一个服务器证书,该服务使用该证书向客户端验证自己(以证明它确实是它声称的服务)
    • 您可以拥有一个客户端证书,客户端需要该证书向服务器证明其身份

    你对哪个感兴趣?

    通常,如果您有服务器/服务证书,客户端将“知道”服务器的公钥(它可以安装在客户端的证书存储中,例如通过安装程序或通过下载和安装),或者它将在创建代理时查询服务器的证书并将服务器的公钥存储在本地客户端配置文件中以供以后使用。然后,此配置将再次与客户端上的应用一起安装。

    如果客户端想要根据服务对自己进行身份验证,它肯定需要将其客户端证书本地安装在客户端计算机的证书存储中。

    我建议查看WCF Security Guidance - 这是一个很棒的资源,他们可以比我更好地解释如何处理某些场景!

    在每个人都在同一个域中的全 Windows 环境中,这似乎有点矫枉过正 - 为什么不直接使用 Windows 提供的内置凭据呢?我想这会容易得多。

    马克

    【讨论】:

    • 感谢您的回复!我应该清楚这目前正在工作,但我们正试图弄清楚如何,因为我们根本没有在客户端上看到我们的 CA。也许 ClickOnce 将其添加到配置中?我们只对服务器证书感兴趣。客户端通过 ClickOnce 部署,用户通过我们的应用程序登录。相信我,我希望我们可以使用 Windows 凭据。不幸的是,我们的许多站点/客户端不在域中,并且每个客户端可以容纳全天使用单个用户登录到 Windows 的多个用户。
    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 2018-11-24
    • 2011-06-11
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    相关资源
    最近更新 更多