草庐IT

c# - BouncyCaSTLe PrivateKey 到 X509Certificate2 PrivateKey

我使用BouncyCaSTLe创建证书varkeypairgen=newRsaKeyPairGenerator();keypairgen.Init(newKeyGenerationParameters(newSecureRandom(newCryptoApiRandomGenerator()),1024));varkeypair=keypairgen.GenerateKeyPair();vargen=newX509V3CertificateGenerator();varCN=newX509Name("CN="+certName);varSN=BigInteger.ProbablePri

c# - 检查 EXE 上的数字签名

我的.NETexe是使用signtool签名的。使用此代码,我可以验证证书本身的有效性:varcert=X509Certificate.CreateFromSignedFile("application.exe");varcert2=newX509Certificate2(cert.Handle);boolvalid=cert2.Verify();但是,这只会检查证书本身,而不检查EXE的签名。因此,如果EXE被篡改,则该方法无法检测到。如何检查签名? 最佳答案 您需要从wintrust.dll调用(P/Invoke)WinVeri

c# - 使用 X509Certificate2 (JwtSecurityTokenHandler) 保护 JWT

我设法使JwtSecurityTokenHandler与X509Certificate2一起工作。我能够使用X509Certificate2对象对token进行签名。我还能够通过X509Certificate2.RawData属性使用证书的原始数据来验证token。代码如下:classProgram{staticvoidMain(string[]args){X509Storestore=newX509Store("My");store.Open(OpenFlags.ReadOnly);X509Certificate2signingCert=store.Certificates[0];s

c# - 从专有名称中提取通用名称

.NET中是否有从rfc-2253编码的专有名称解析CN的调用?我知道有一些第三方库可以执行此操作,但如果可能,我更愿意使用native.NET库。字符串编码DN的示例CN=L.Eagle,O=Sue\,GrabbitandRunn,C=GBCN=JeffSmith,OU=Sales,DC=Fabrikam,DC=COM 最佳答案 如果您使用的是X509Certificate2,可以使用native方法提取简单名称。SimpleName相当于主证书的Subject字段中的CommonNameRDN:x5092Cert.GetName

c# - 如何从客户端请求中获取 X509Certificate

我有一个使用证书保护的网络服务。现在,我想通过查看证书指纹来识别客户端。这意味着我在某处的服务上有一个指纹列表,这些指纹链接到某个用户。实际上,我的第一个问题(有点题外话)是:这是一个好方法还是我还应该引入一些用户名密码构造?第二个问题是:我怎样才能获得客户端用来连接到网络服务的证书,以便我可以在服务端读取指纹。我确实阅读了很多相关内容(例如这篇文章:HowdoIgettheX509Certificatesentfromtheclientinwebservice?)但找不到答案。我没有HTTPContext,所以这不是一个选项。在上面提到的帖子中谈到了Context.Request.C

c# - 如何以编程方式创建有效的自签名 X509Certificate2,而不是从 .NET Core 中的文件加载

我目前做的是使用OpenSSL生成PFX文件。这会导致不必要的依赖,尤其是对于Windows用户。所以我找到了一些关于如何使用BouncyCaSTLe创建自己的证书的示例,但是这个库与.NETCore不兼容(或者我找不到兼容的包)。那么,是否可以仅使用.NET核心创建您自己的自签名X509证书以避免依赖OpenSSL(或任何其他证书生成外部工具)?编辑:有人(编辑?)建议这个SO问题Howtocreateaself-signedcertificateusingC#?提供了一个答案。可悲的是,这与.NETCore无关。接受的答案以ThisimplementationusestheCX50

c# - 加载 X509Certificate 导致异常 CryptographicException "Cannot find the original signer"

我正在尝试实例化一个X509Certificate对象,但我一直遇到相同的CryptographicException,并显示错误消息:"Cannotfindtheoriginalsigner".我尝试了几种加载证书的方法://somedifferentthingsthatIhavetriedvarcert=X509Certificate.CreateFromCertFile(certFileName);varcert2=newX509Certificate(byteArray);varcert3=newX509Certificate(byteArray,secretString);v

c# - 名称 'X509Certificate2UI' 在当前上下文中不存在

有人在AspNetMVC4应用程序中使用X509Certificate2UI类有问题usingSystem.Security.Cryptography.X509Certificates;privatestaticX509Certificate2PickCertificate(StoreLocationlocation,StoreNamename){try{store.Open(OpenFlags.ReadOnly);//PROBLEMISHEREX509Certificate2cert=X509Certificate2UI.SelectFromCollection(store.Cert

c# - 如何从证书库中获取X509Certificate并生成xml签名数据?

如何从证书存储中获取X509Certificate,然后在.netC#中生成XMLSignatureData? 最佳答案 据我所知,证书不是用XML格式保存的,需要自己组合。这是你想要的吗?staticvoidMain(string[]args){X509Certificate2cer=newX509Certificate2();cer.Import(@"D:\l.cer");X509Storestore=newX509Store(StoreLocation.CurrentUser);store.Certificates.Add(c

c# - 如何使用 C# 以编程方式安装证书

我学校的网页有自信任证书(必须手动安装)。我想创建一个程序,用于将certificate.cer(来自VisualStudio资源)安装到本地用户的Trustedrootcertificateauthority。你知道我如何在C#中做到这一点吗? 最佳答案 要以编程方式将证书添加到当前用户的受信任根存储,请使用X509Store和X509Certificate2类。例如:stringfile;//ContainsnameofcertificatefileX509Storestore=newX509Store(StoreName.Ro