【问题标题】:Server certificate vs Client Certificate服务器证书与客户端证书
【发布时间】:2014-07-16 11:48:40
【问题描述】:

我正在使用 Winforms 客户端连接到托管在 IIS 中的 WCF 服务。 Winforms 应用程序可供客户下载并安装在他们的计算机上。客户必须使用他们的用户名/密码登录应用程序。我想要客户端应用程序和 WCF 之间启用安全 HTTPS 的通信。提供这种功能的最佳实践是什么?我应该使用客户端证书还是只使用服务器证书?非常感谢任何输入。 谢谢。

【问题讨论】:

    标签: c# winforms wcf ssl


    【解决方案1】:

    你必须有一个服务器证书。

    如果您想要更强的身份验证,您可以使用客户端证书。但是,存在证书管理费用和潜在的其他成本:使用来自提供商的证书、自己生成证书、维护撤销列表等等。

    【讨论】:

    • 感谢您的回复。如果我选择使用客户端证书,它们应该预先安装在客户的计算机上,或者有什么方法可以在他们安装应用程序时安装证书?我们还需要为每个客户提供多个证书吗?
    • 这可能有点复杂。基本答案是你不能,因为他们需要有相应的私钥。同时,如果,例如,运行您自己的 CA 并在应用程序启动时(或在安装期间)生成它们并进行一些身份检查(例如,用户收到一个秘密字符串,他们必须拨打某个号码并以某种方式验证他们的身份或通过 SMS 向他们发送另一个秘密等等)。它可能会变得复杂。另一种选择是检查已经建立的 CA,看看他们是否有任何工具可以帮助您处理这个用例。
    【解决方案2】:

    由于您已经使用密码对用户进行了身份验证,因此不需要客户端证书身份验证。为确保通信安全,请使用自签名服务器证书。如果客户端需要验证他们是否连接到正确的服务器,那么您需要从第三方 CA (如威瑞信)获得签名证书,这可能会花费您至少 100 美元。

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 2021-10-03
      • 2015-10-20
      • 2020-10-23
      • 2016-01-27
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多