Certificate CryptoAPI和CRLs

Certificate CryptoAPI和CRLs,certificate,windows-ce,cryptoapi,certificate-revocation,Certificate,Windows Ce,Cryptoapi,Certificate Revocation,我面临CryptoAPI证书链验证的问题,特别是撤销检查。问题是我在Windows CE下工作(没有internet访问),CryptoAPI不为它导出CRL API 我做了一些研究,似乎CertGetCertificateChain()进行撤销检查,但这是秘密的 我已经用OpenSSL自签名根CA和中间CA(用根CA签名)创建了,最后我用中间CA签署了一个结束证书,其中包含扩展名crlDistributionPoints,其中指向中间CA的CRL,该CRL以PEM格式编码。为了简洁起见,我们

我面临CryptoAPI证书链验证的问题,特别是撤销检查。问题是我在Windows CE下工作(没有internet访问),CryptoAPI不为它导出CRL API

我做了一些研究,似乎
CertGetCertificateChain()
进行撤销检查,但这是秘密的

我已经用
OpenSSL
自签名
根CA
中间CA
(用根CA签名)创建了,最后我用
中间CA
签署了一个结束证书,其中包含扩展名
crlDistributionPoints
,其中指向
中间CA
的CRL,该CRL以
PEM
格式编码。为了简洁起见,我们将其命名为
mediate.crl.pem

因此,
intermediate.crl.pem
在我的磁盘上是持久的,在我的
openssl.cnf
中,我这样链接它:

...
[ extensions_section ]

crlDistributionPoints=//windows//intermediate.crl.pem
 ...
我不确定这是否正确,但是,我也不确定CryptoAPI是否不需要一些不同的格式(例如DER而不是PEM)

最后,撤销检查是不正确的。无论证书是否在CRL中,我总是会收到证书被吊销的错误

你能在这里给我一些指导吗?重要的是,不得通过网络获取
intermediate.crl.pem
(必须在文件系统上进行抵抗)

另外,我注意到Windows CE支持一个名为
Disallowed
的证书存储,CryptoAPI的链引擎在验证过程中检查该存储,如果正在验证的证书在其中,则返回一个错误(表示证书无效)

用这个商店代替CRL是更好的方法吗