【发布时间】:2015-05-19 17:18:45
【问题描述】:
我在统一进行证书验证时遇到问题。我使用 .Net 类 HttpWebResponse 发出请求并向 ServicePointManager.ServerCertificateValidationCallback 提供回调函数。
证书由权威机构签署,可在网络浏览器中正常使用。
验证失败,状态为:
X509ChainStatusFlags.PartialChain X509ChainStatusFlags.RevocationStatusUnknown X509ChainStatusFlags.OfflineRevocation
问题,我怎么看,是空的根证书存储和空的 CRL 列表。我打开 Mono 源代码,发现这些数据应该是从 X509Store 获取的,但不知何故,它不包含任何 Root 证书或 CRL。
我需要实现证书的正确验证,而不仅仅是通过在 ServerCertificateValidationCallback 中返回 true 或硬编码证书指纹来跳过它,为此我需要提供所有必需的数据。
假设我知道 Root 权限,我可以在应用程序启动时将其添加到存储中。但它不适用于 CRL。平台为Android\IOS。
问题是:如何强制统一安装 Root 和 CRL?
【问题讨论】: