【发布时间】:2014-08-05 18:46:18
【问题描述】:
我正在构建一个需要相互身份验证的应用。所以我会让我的用户上传一堆客户端证书,当他们打电话时,他们可以使用其中任何一个。我将匹配传入请求中的客户端证书,以查看它是否与已存储的任何证书匹配,如果匹配,则该请求将被兑现。
现在我正在尝试找出存储这些客户端证书的最佳方式。我在想我可以将它们存储在数据库中,或者某种文件/blob 存储中,或者我知道它们也可以安装在机器的存储中?
这些选项中的哪一个是理想的或被认为是最佳实践?
存储客户端证书的最佳做法是什么?
编辑:我的服务器实际上是在带有 IIS 的 Windows 机器上运行其他用户将使用的服务。
【问题讨论】:
-
证书是公开信息。它们可以像电话簿中的电话号码一样发布。处理它们并没有真正的最佳实践。有时,您会看到一些与隐私相关的问题,例如服务器根据证书和日志文件等公共信息泄露其用户的信息。但这似乎不适用于这里。匹配的私钥(或 PKCS 12 文件)是另一回事。
-
拥有客户证书并不安全,也没有特别的理由这样做。您需要验证的是证书的所有者 是否被授权 使用您的服务器。您不需要证书,只需要一个主题DN 表。当客户端更新时,拥有实际证书也会导致问题。
标签: security ssl certificate x509certificate mutual-authentication