Certificate CryptoAPI和CRLs
我面临CryptoAPI证书链验证的问题,特别是撤销检查。问题是我在Windows CE下工作(没有internet访问),CryptoAPI不为它导出CRL API 我做了一些研究,似乎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格式编码。为了简洁起见,我们
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是更好的方法吗