2

在 ICertificatePolicy 接口的MSDN 示例中,有一个枚举,其中列出了可以通过以下方式返回的所有可能的状态错误代码ValidationCallback

public enum CertificateProblem : long
{
        CertEXPIRED                   = 0x800B0101,
        CertVALIDITYPERIODNESTING     = 0x800B0102,
        CertROLE                      = 0x800B0103,
        CertPATHLENCONST              = 0x800B0104,
        CertCRITICAL                  = 0x800B0105,
        CertPURPOSE                   = 0x800B0106,
        CertISSUERCHAINING            = 0x800B0107,
        CertMALFORMED                 = 0x800B0108,
        CertUNTRUSTEDROOT             = 0x800B0109,
        CertCHAINING                  = 0x800B010A,
        CertREVOKED                   = 0x800B010C,
        CertUNTRUSTEDTESTROOT         = 0x800B010D,
        CertREVOCATION_FAILURE        = 0x800B010E,
        CertCN_NO_MATCH               = 0x800B010F,
        CertWRONG_USAGE               = 0x800B0110,
        CertUNTRUSTEDCA               = 0x800B0112
}

这些不同的状态码代表什么?它们不在链接引用的 SSPI 状态代码文档中。

4

1 回答 1

4

我花了很长时间试图弄清楚这一点,终于找到了一个包含不同代码解释的VMware C# 文件:

CertEXPIRED
所需证书不在其有效期内

CertVALIDITYPERIODNESTING
证书链的有效期没有正确嵌套

CertROLE
只能用作最终实体的证书被用作 CA,反之亦然

CertPATHLENCONST
违反了认证链中的路径长度约束

CertCRITICAL
证书中存在标记为“关键”的未知类型的扩展

CertPURPOSE
证书被用于其被允许的目的以外的目的

CertISSUERCHAINING
给定证书的父级实际上并未颁发该子级证书

CertMALFORMED
证书丢失或重要字段为空值,例如主题或颁发者名称

CertUNTRUSTEDROOT
正确处理的证书链,但以不受信任提供者信任的根证书终止

CertCHAINING
证书链在某个链接应用程序中没有按照应有的方式链接

CertREVOKED
证书已被其颁发者明确吊销

CertUNTRUSTEDTESTROOT
根证书是测试证书,策略设置不允许测试证书

CertREVOCATION_FAILURE
吊销过程无法继续 - 无法检查证书

CertCN_NO_MATCH
证书的 CN 名称与传递的值不匹配

CertWRONG_USAGE
证书对于请求的用途无效

CertUNTRUSTEDCA
不受信任的 CA

于 2013-05-10T22:53:31.217 回答