草庐IT

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

我有一个成功的LetsEncrypt证书请求输出的.cer文件。我有用于为LetsEncrypt创建证书签名请求(CSR)的原始私钥。现在我们需要使用.NET以编程方式将这两个文件合并到IIS的PFX包中由于我们试图以编程方式执行此操作,pvk2pfx不切实际,我们希望尽可能避免使用openssl。不过,为了演示,我们尝试复制此功能,但使用CS.NET而不是pvk2pfx:pvk2pfx.exe-pvkServer.pvk-spcServer.cer-pfxServer.pfx我已经进行了详尽的研究,以下是我看到的可能性:一种方法似乎是使用X509Certificate2,例如://I

c# - 通过代码访问时私钥为空,为什么?

我的机器上安装了一个证书,当我去查看它时,我看到消息“您有一个与该证书相对应的私钥”但是,当我尝试在代码中访问该私钥时,它是无效的。我使用以下代码获取我的证书:varx509Certificate=GetCertificate(StoreName.My,StoreLocation.LocalMachine,"CN=SomeCert");地点:publicX509Certificate2GetCertificate(stringstoreName,stringstoreLocation,stringsubjectName){varstore=newX509Store(getStoreNa

c# - 导出没有私钥的 X.509 证书

我认为这很简单,但显然不是。我安装了一个证书,它有一个私钥,可导出,我想以编程方式仅使用公钥导出它。换句话说,我想要的结果相当于在通过certmgr导出并导出到.CER时选择“不导出私钥”。似乎所有X509Certificate2.Export方法都会导出私钥(如果存在),作为PKCS#12,这与我想要的相反。有什么方法可以使用C#来完成这个,还是我需要开始深入研究CAPICOM? 最佳答案 对于可能偶然发现这一点的其他人,我想通了。如果您将X509ContentType.Cert指定为X509Certificate.Export的

c# - 以编程方式导入带有私钥的证书

我正在尝试在C#应用程序中使用HttpListener类来让迷你网络服务器通过SSL提供内容。为此,我需要使用httpcfg工具。我有一个包含公钥和私钥对的.pfx文件。如果我使用mmc手动将此key对导入本地机器存储,一切正常。但是,如果我使用X509Store类以编程方式导入此key对,我将无法连接到我的迷你网络服务器。请注意,在这两种方法中,证书都被导入到LocalMachine中的MY存储中。奇怪的是,一旦我以编程方式导入它,我就能够在mmc中查看证书,当我查看它时,UI指示私钥也可用于该证书。深入挖掘,我注意到当我手动导入key对时,我可以看到一个新文件出现在C:\Docum

c# - "Bad key"带有可导出私钥的证书异常

我正在尝试使用非对称加密对文件进行加密和解密。我已经使用makecert创建了一个测试证书并将其安装到我的个人本地机器商店中。将来我必须在多台服务器上安装此证书,这就是我使用“-pe”标志创建它的原因,即使用可导出的私钥。证书已成功创建和安装,我在mmc中看到“您有一个与此证书相对应的私钥”提示。现在我正尝试在.NET3.5中使用RSACryptoServiceProvider加密数据。它成功了。但是当我试图解密它时,出现“Badkey”异常。如果我创建的证书没有“-pe”选项,则相同的代码可以很好地解密。这是代码:RSArsaKey=(RSA)myCertificate.Privat

c# - 在根中插入证书(带有私钥),.NET 4 中的本地计算机证书存储失败

我在将带有私钥的新CA证书插入到本地机器的根证书存储中时遇到问题。是这样的://Thisdoesn'thelpeither.newStorePermission(PermissionState.Unrestricted){Flags=StorePermissionFlags.AddToStore}.Assert();varstore=newX509Store(StoreName.Root,StoreLocation.LocalMachine);privkey.PersistKeyInCsp=true;//Thisshouldn'tbenecessarydoesn'tmakeadiffe

javascript - 使用浏览器 keystore 中的私钥进行基于浏览器的加密/解密

我的情况:医务人员想要将患者的敏感数据输入到网络浏览器(!)中,以便将其存储到某个数据库中并稍后再次检索。除医务人员本身外,其他任何人都不允许看到这些数据。这意味着它必须在传输到服务器之前使用一些secrettoken进行加密。这也意味着IT人员(有权访问服务器/数据库)和其他任何人都不能在没有secrettoken的情况下解密它。(如果token丢失,数据将永远无法访问。)不应在客户端计算机上安装其他软件,除了一些token(例如,私钥),该token将导出一次并将其导入所有浏览器,应从中授予数据访问权限。所以我的问题是:有没有办法使用一些可以在浏览器之间轻松交换的secret浏览器

php - 如何为 openssl_private_decrypt() 提供私钥

我已经用我的公钥加密了一些值。但是我不能用我的私钥解密它。我的代码有问题吗?这是我的脚本: 最佳答案 关于openssl_private_decrypt()的第一条评论你可以找到一个例子。在此示例中,您可以看到key参数是方法openssl_get_privatekey()的结果,它是openssl_pkey_get_private()的别名。.openssl_pkey_get_private()的手册说key可以是以下之一:格式为file://path/to/file.pem的字符串。命名文件必须包含PEM编码的证书/私钥(它可能

公钥密码学中的公钥和私钥

公钥密码学解释:它是什么?公钥基础设施(PKI)用于管理互联网通信中的身份和安全性。启用PKI的核心技术是公钥密码术,这是一种依赖于使用两个相关密钥(公钥和私钥)的加密机制。这两个密钥一起用于加密和解密消息。以这种方式配对两个加密密钥也称为非对称加密。公钥加密使用加密算法来保护身份和数据免遭未经授权的访问或使用,防止来自网络犯罪分子和其他恶意行为者的攻击。公钥加密的工作原理公钥由一串随机数组成,可用于加密消息,只有预期的接收者才能使用相关联的私钥解密和读取该消息,私钥也是由一长串随机数组成的。此私钥是秘密密钥,并且必须只为接收者所知。密钥对在数学上是相关的,因此使用公钥或私钥加密的任何内容都只

带有 openSSL 的 PHP - 提供的 key 参数不能被强制转换为私钥

我正在尝试使用openssl_sign()函数对文件进行签名。我有以下私钥:-----开始EC私钥-----MHQCCAQEEIDzQVg9bJ1kZFsZDoLeqadA4OTgKc40ukSmQ3MVzcV0soAcGBSuBBAAKoUQDQgAEvzUNKCE3UVimCLUePomOUH/kfy0ujHdN5Kmn7ez3TtokJDy5ksVnOgf6WzpmzY46zvKAnQ44Cgx5Kdqx5dVDiw==-----结束EC私钥-----我正在使用以下函数:openssl_sign("test",$signature,$private_key,OPENSSL_ALG