Tag: 证书

C#validation签名

我有以下代码在发送之前签署我的数据(http): internal static byte[] Encode(byte[] arMessage, string signerCert, string signerPassword) { X509Certificate2 cert = new X509Certificate2(signerCert, signerPassword); //debug data var msg = System.Text.ASCIIEncoding.ASCII.GetString(arMessage); //– ContentInfo contentInfo = new ContentInfo(arMessage); SignedCms signedCms = new SignedCms(contentInfo, true); // <- true detaches the signature CmsSigner cmsSigner = new CmsSigner(cert); signedCms.ComputeSignature(cmsSigner); byte[] signature = signedCms.Encode(); return signature; } 执行以下操作后,我可以看到签名: […]

在PDF上添加签名图像,而无需使用iTextSharp对其进行数字签名

我正在使用iTextSharp来处理PDF。 我想在签名字段中添加签名图像,而不对文档进行数字签名(不需要任何证书参与)。 可能吗? 我可以使用数字签名但我也想在签名字段上添加签名图像而不使用任何证书。 更新: 现在写我有以下代码。 // Set PDF Reader and PDF Stamper PdfReader reader = new PdfReader(sourceDocument); // File stream where PDF will write FileStream fout = new FileStream(destinationPath, FileMode.Create, FileAccess.ReadWrite); PdfStamper stamper = PdfStamper.CreateSignature(reader, fout, ‘\0’, null, true); // Set PDF Appearance PdfSignatureAppearance appearance = stamper.SignatureAppearance; iTextSharp.text.Image signatureFieldImage = iTextSharp.text.Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Png); appearance.SignatureGraphic = […]

如何validation证书?

我刚刚开始一个项目,我将需要使用FTPS连接到第三方服务器。 他们将向我们提供我尚未拥有的证书,因此我将创建自己的开发环境以便开始使用。 我使用Alex FTPS客户端作为我的起点( http://ftps.codeplex.com/ )…但我也愿意将WinSCP用作其他客户端。 我的问题如下: – 如何在.Net中validation证书? 已完成的步骤 已安装和配置的FileZilla Server 使用FileZilla创建了自签名证书 3.在Alex FTPS客户端中,他们使用此签名进行回调 private static bool ValidateTestServerCertificate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { // what goes here? } 我的(各种问题)是: 什么假设进入该方法? 我只对证书有一点了解。 FileZilla自生成证书甚至是X509证书吗? 我必须承认,我不知道不同类型的证书格式。 我写的是什么类型的代码? 当我在WCF或HTTP中使用SSL时,已经为我处理了很多管道。 这不是FTPS的情况吗? 即我将使用Windows中的MMC管理单元控制台导入或安装证书。 如果我没有在Alex FTPS中实现Callback方法,我收到消息:“远程证书根据validation程序无效” 感谢您提供任何提示和指示

为什么我的根证书不受信任?

我从证书服务器发给自己一个代码签名证书。 我也从同一个证书服务器发给自己的根证书。 根证书存在于“受信任的根证书颁发机构”文件夹中的“当前用户”和“本地计算机”证书存储中。 我已使用signtool.exe向导成功签名了DLL: “C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe” signwizard .dll 但是,当我尝试validation我的DLL时,它validation失败并出现以下错误: “C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe” verify .dll SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. SignTool Error: File not valid: .dll 为什么会这样? 我认为在受信任的根证书颁发机构文件夹中拥有根证书将validationDLL。

将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; […]

使用不在证书库中的客户端证书

我正在尝试使用我的客户端证书对WebService进行身份validation,但是,由于某些原因(我解释),我不想从商店加载证书,而是从光盘读取它。 下列: // gw is teh WebService client X509Certificate cert = new X509Certificate(PathToCertificate); _gw.ClientCertificates.Add(ClientCertificate()); ServicePointManager.ServerCertificateValidationCallback = (a,b,c,d) => true; _gw.DoSomeCall(); 总是返回403 – 服务不授权我。 但是,当我将该证书保存到CertStore时,它可以工作。 (如MSDN中所述。) 是否可以使用不在商店的证书? (原因是,我得到Windows服务(客户端)有时会调用webservice(服务器),并且在未指定的时间后服务’忘记’我的证书并且没有对服务器进行授权,没有明显的原因)

支持https的http侦听器以c#编码

我发现了很多答案如何将httplistener设置为使用HTTPS,但每个解决方案都需要使用命令行。 我想这是最快的方法,但我想编写C#类来处理这个问题。 在旧的解决方案中,我使用了webserver类(在Internet的某个地方找到,我不记得确切的名称),它允许以这种方式添加证书: webserver.Certificate = new X509Certificate2(“MyCert.pfx”, “MyPassword”); 有没有办法用httplistener实现这一点? 从代码显然。 问候。

如何在C#中以编程方式启用强私钥保护?

当使用C#以编程方式添加X509Certificate2时,如何在certmgr.msc中设置“强私钥保护”复选框?

使用PrivateKey X.509证书解密

我有一个问题是解密消息usgin X.509证书。 我使用以下选项生成带有makecert的证书: makecert -r -pe -n “CN=MyCertificate” -ss CA -sr CurrentUser -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer PrivateKey是“mypassword”。 我的问题是当我想解密用c#中的先前证书加密的消息时。 我发现这个类http://blog.shutupandcode.net/?p=660 ,但是在X509Decrypt方法中,PrivateKey一直是null。 public static byte [] X509Decrypt(byte [] data,string certificateFile,string password) { //加载证书并解密指定的数据 使用(var ss = new System.Security.SecureString()) { foreach(密码中的var keyChar.ToCharArray()) ss.AppendChar(keyChar); //加载受密码保护的证书文件 X509Certificate2 cert = new X509Certificate2(certificateFile,ss); 使用(RSACryptoServiceProvider rsa =(RSACryptoServiceProvider)cert.PrivateKey) { […]

snk与代码签名证书

在我的组织中,我们使用具有强名称程序集的snk文件。 我们自己生成snk。 此外,我们在二进制文件上使用代码签名签名。 我们从Verisign获得了pfx。 这两个过程有什么区别? 是不是从Verisign也没有收到snk的问题?