Tag: pfx

解码PKCS#12文件

我正在寻找在.NET中解码PKCS#12文件的方法,我需要提取私钥和任何证书,以便我可以以编程方式访问以下内容。 系数 publicExponent privateExponent prime1 prime2 exponent1 exponent2 系数 我需要这些信息,以便我可以成功使用PKCS#11创建私钥并在USB令牌上进行设置。 我找到了一个使用OpenSSL输出这些数据的网站。 当我发现OpenSSL.NET时,我非常兴奋,但是分割PKCS#12文件的function还没有实现。 我想知道是否有人知道任何替代品。 谢谢 罗汉

TemporaryKey.pfx问题我没有密码

我的客户有问题。 他有一个Microsoft CRM开发人员,他离开了。 现在项目仍未完成。 我已经下载了自定义应用程序的源代码,我不想继续开发。 我已经尝试过ClickOne部署,它会弹出一个与myapp_TemporaryKey.pfx相关的密码输入框。 我试图在网络上的计算机上安装并以调试模式启动,我遇到了同样的问题,它说: “无法导入以下密钥文件:。密钥文件可能受密码保护。要解决此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区。” 第二个错误是:“导入密钥文件”myapp_TemporaryKey.pfx“已取消 你知道怎么做才能解决这个问题吗? 我有.PFX文件,但没有密码。

在c#中取消多个任务的正确方法是什么

我有一个按钮,可以产生4个任务。 相同的按钮更改为取消按钮,单击此按钮将取消所有4个任务。 我是否应该将相同的取消令牌传递给所有4个任务,并让它们在IsCancelRequested的相同令牌上进行轮询? 在createlinkedtokensource上阅读msdn doc后我很困惑。 这通常是怎么做的? 谢谢 更新:Task.WaitAll()等待所有任务完成执行 。 类似地,一旦共享取消令牌源设置为取消,如何知道何时取消所有任务 。

将X509证书存储在数据库中

为了访问Web服务,我需要一个证书。 我生成了我的证书: openssl genrsa 1024 > private.key openssl req -new -x509 -nodes -sha1 -days 1100 -key private.key > public.cer 然后将这两个合并为一个pfx证书 openssl pkcs12 -in public.cer -inkey private.key -export -out client.pfx 然后将我的pfx文件加载为X509Certificate2 X509Certificate2 clientCert = new X509Certificate2(“cert.pfx”, “password”); 现在,我想在数据库中创建一个包含以下字段的表: PrivateKey NVARCHAR PublicCer NVARCHAR Password NVARCHAR 然后从private.key文件中复制内容,以及—– BEGIN CERTIFICATE —–和—– END CERTIFICATE —–,对于public.cer也是如此,并设置密码。 现在,如何通过从DB读取此数据来获取X509Certificate2的正确实例? 换句话说,如何根据私钥和证书从代码生成pfx文件? 我会尝试更精确: string connectionString; […]

如何从pfx / cer创建snk?

微软似乎已经创建了一个认证丛林,这很难理解。 Microsoft X.509证书(.cer) 个人信息交流(.pfx) 程序集签名密钥属性(.snk) 是否建议基于pfx或cer创建snk文件? (不确定它是否可能,如果它可能如何完成?) 虽然可以使用受密码保护的pfx对程序集进行签名,但它看起来并不强大,除非使用snk签名。 但是snk没有密码保护。 哪一个更安全? 由于我是项目中唯一的开发人员,我没有多开发人员安全环境问题,但仍想知道什么是最好的方法。 非常感谢,

使用代码为证书设置私钥权限

我有以下代码,其中SIGNED_FILENAME是一个常量,指向包含私钥的现有pfx文件。 X509Certificate2 cert = new X509Certificate2(SIGNED_FILENAME, PASSWORD, X509KeyStorageFlags.MachineKeySet); RSACryptoServiceProvider certRsa = cert.PrivateKey as RSACryptoServiceProvider; 当我使用代码添加私钥的权限时,我发现它们是在certRsa.CspKeyContainerInfo.UniqueKeyContainerName中指定的文件上设置的。 当我在证书mmc管理单元中查看证书权限时,但没有设置新权限。 当我通过Certificates mmc管理单元手动设置密钥时,我发现它设置权限的私钥与我在上面提到的UniqueContainerName属性中找到的私钥不同。 TLDR:每次运行这两行代码时,密钥容器文件都会更改。 为什么会发生这种情况?如何在证书mmc管理单元所执行的相同密钥上设置权限?

在C#中以编程方式将证书和私钥转换为.PFX

我有一个成功的LetsEncrypt证书请求的.cer文件输出。 我有原始私钥用于为LetsEncrypt创建证书签名请求(CSR)。 现在我们需要使用.NET以编程方式将这两个文件组合成一个用于IIS的PFX包 由于我们试图以编程方式执行此操作pvk2pfx不实用,我们希望尽可能避免使用openssl。 为了演示,我们尝试复制此function,但使用CS .NET而不是pvk2pfx:pvk2pfx.exe -pvk Server.pvk -spc Server.cer -pfx Server.pfx 我已经详尽地研究过了,这里有我看到的可能性: 一种方法似乎是使用X509Certificate2,如: // Import the certficate X509Certificate2 cert = new X509Certificate2(“c:\\cert.cer”); // Import the private key X509Certificate2 cert = new X509Certificate2(“c:\\key.pvk”); // Or import the private key – Alternative method X509DecryptString(token, @”c:\CA.pvk”, “mypassword”); // Export the PFX file certificate.Export(X509ContentType.Pfx, “YourPassword”); File.WriteAllBytes(@”C:\YourCert.pfx”, certificateData); 这里有一些其他的方法,但所有这些方法似乎省略了关于私钥的部分或他们需要pvk2pfx.exe […]

如何以编程方式将带有证书链的pfx导入证书存储区?

我正在尝试以编程方式在我的本地计算机的证书存储中导入X509证书(pfx / PKCS#12)。 此特定证书具有一系列证书,证书路径如下所示: 根证书CA. 组织证书CA. 组织2证书CA. 我的证书 我使用的代码如下所示: cert = new X509Certificate2(pathToCert, password); if (cert != null) { var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); if (!store.Certificates.Contains(cert)) { store.Add(cert); } } 此代码确实导入了证书,但它似乎忽略了链。 如果我检查商店中的证书,则证书路径仅显示: 我的证书 但是,当我手动导入pfx时,它确实显示完整路径。 我在这里跳过一步,还是我错过了一些参数? 有人可以对此有所了解吗?

使用blockingcollection和tasks .net 4 TPL的经典生产者消费者模式

请参阅下面的伪代码 //Single or multiple Producers produce using below method void Produce(object itemToQueue) { concurrentQueue.enqueue(itemToQueue); consumerSignal.set; } //somewhere else we have started a consumer like this //we have only one consumer void StartConsumer() { while (!concurrentQueue.IsEmpty()) { if (concurrentQueue.TrydeQueue(out item)) { //long running processing of item } } consumerSignal.WaitOne(); } 我如何移植我从远古时代以来使用的模式来使用taskfactory创建的任务和net 4的新信号function。换句话说,如果有人用net 4编写这个模式,它会是什么样子? 伪代码很好。 我已经使用了.net 4 […]

如何在没有抛出exception的情况下取消等待超时的任务

使用取消令牌取消具有超时(在超时结束之前)的任务时,将引发exception。 例: mytask.start(); bool didTaskRunInTime = mytask.wait(5 mins, _cancelToken); 这意味着我不能继续下面。 //was the task cancelled if (_cancelToken.IsCancelRequested) { // log cancel from user to file etc } if (didTaskRunInTime ) { int taskResult = myTask.Result; // log result to file } else if (!_cancelToken.IsCancelRequested) { // Tell user task timed out , log a message etc […]