当前位置:  开发笔记 > 编程语言 > 正文

为什么此X.509证书被视为无效?

如何解决《为什么此X.509证书被视为无效?》经验,为你挑选了2个好方法。

我的服务器上安装了给定的证书.该证书具有有效日期,并且在Windows证书MMC管理单元中似乎完全有效.

但是,当我尝试读取证书时,为了在HttpRequest中使用它,我找不到它.这是使用的代码:

    X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
    store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
    store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);

xxx是序列号; 该参数true意味着"只有效证书".返回的集合为空.

奇怪的是,如果我通过false,表示可以接受无效证书,则该集合包含一个元素 - 具有指定序列号的证书.

总之:证书似乎有效,但该Find方法将其视为无效!为什么?



1> David Crow..:

尝试使用X509Chain类验证证书链.这可以告诉您证书无法被视为有效的原因.

正如erickson建议的那样,您的X509Store可能没有来自链中CA的可信证书.如果您使用OpenSSL或其他工具生成自己的自签名CA,则需要将该CA的公共证书添加到X509Store.



2> erickson..:

发行人的证书是否存在于X509商店中?证书仅在您信任的人签名时才有效.

这是来自真实CA的证书,还是您自己签署的证书?开发人员经常使用的证书签名工具(如OpenSSL)默认情况下不会添加一些重要的扩展.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有