gpt4 book ai didi

c# - 我可以在不使用证书存储的情况下在 ASP.NET 中使用 X509Certificate2 吗?

转载 作者:太空狗 更新时间:2023-10-29 20:29:30 25 4
gpt4 key购买 nike

我正在尝试在 Rackspace 云中的 ASP.NET Web 服务中使用 X509Certificate。我感觉证书存储在云节点上可能会导致问题。除了我在 SslStream.AuthenticateAsClient Exception when using iPhone Apple Push Notification Provider (apns-sharp) C# 收到的异常(exception)情况外,我还有一个与此相关的问题

在 apns-sharp 项目中,我使用了以下代码:

certificate = new X509Certificate2(p12File)

但是我收到一个异常并将代码更改为以下内容解决了 X509Certificate2 异常。新代码如下:

certificate = new X509Certificate2(p12File, String.Empty, X509KeyStorageFlags.MachineKeySet);

我想知道我是否可以在不使用证书存储的情况下在 ASP.NET 中使用 X509Certificate2?证书存储是否会导致 Rackspace 云节点出现问题?

更新 #1 Rackspace 告诉我不允许访问本地机器证书存储。还有其他方法可以绕过证书存储吗?也许使用第三方库?

最佳答案

第一个构造函数不起作用的原因是 ASP.NET 不加载用户配置文件存储,如果您不使用 X509KeyStorageFlags 指定存储位置,则这是默认存储。但是,机器存储始终由 ASP.NET 加载,这就是第二个构造函数起作用的原因。

我假设您打算使用证书上的私钥进行加密或创建数字签名(散列),在这种情况下您无法避免使用证书存储,因为私钥只能以编程方式从导入的文件中访问证书,而不是直接来自 blob 或文件。

如果证书数据仅包含公钥(因为没有要保护的敏感数据),我认为不会使用证书存储 - 我注意到我只需要在打算时指定机器存储使用包含私钥的证书。

不过,我无法对 Rackspace 的情况发表评论 - 在部分受信任的环境中运行的代码中导入证书可能会出现问题,因为加载私钥容器需要特定的权限,而您的程序集可能无法获得这些权限。

关于c# - 我可以在不使用证书存储的情况下在 ASP.NET 中使用 X509Certificate2 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com