Tag: ssl certificate

WCF新手 – 如何安装和使用SSL证书?

对于之前完成它的人来说,这应该是一件轻而易举的事…… 我正在尝试使用NetTcpBinding设置自托管的WCF服务。 我从Thawte那里获得了一个试用版SSL证书,并在我的IIS商店中成功安装了这个证书,我认为我已经在服务中正确设置了它 – 至少我不会例外! 现在,我正在尝试连接客户端(这仍然在我的开发机器上),并且它给了我一个错误,“Message =”X.509证书CN = ssl.mydomain.com,OU =用于测试目的只要。 无保证。,OU = IT,O =我的公司,L =我的城镇,S =无,C = IL链建设失败。 使用的证书具有无法validation的信任链。 替换证书或更改certificateValidationMode。 已处理证书链,但终止于信任提供程序不信任的根证书。“ Ooookeeeey ……现在怎么样? 客户端代码(我想在代码中执行此操作,而不是app.config): var baseAddress = “localhost”; var factory = new DuplexChannelFactory(new InstanceContext(SiteServer.Instance)); factory.Endpoint.Address = new EndpointAddress(“net.tcp://{0}:8000/”.Fmt(baseAddress)); var binding = new NetTcpBinding(SecurityMode.Message); binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName; factory.Endpoint.Binding = binding; var u = factory.Credentials.UserName; u.UserName = […]

在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 […]

忽略错误的证书 – .NET CORE

我正在编写一个.NET Core应用程序来轮询远程服务器并在显示时传输数据。 这在PHP中运行得很好,因为PHP忽略了证书(这也是浏览器中的一个问题),但是我们想把它转移到C#.NET CORE,因为这是系统中唯一剩下的PHP。 我们知道服务器很好,但由于各种原因,证书不能/不会很快更新。 请求是使用HttpClient: HttpClient httpClient = new HttpClient(); try { string url = “https://URLGoesHere.php”; MyData md = new MyData(); // this is some data we need to pass as a json string postBody = JsonConvert.SerializeObject(md); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/json”)); HttpResponseMessage wcfResponse = await httpClient.PostAsync(url, new StringContent(postBody, Encoding.UTF8, “application/json”)); Console.WriteLine(wcfResponse.Content); } catch (HttpRequestException hre) { […]

从Web浏览器控件打开证书信息

有谁知道如何根据WebBrowser控件中的SSL打开“证书信息”屏幕?

C#通过SSL / TLS获取xml站点 – https://

我需要能够从控制台程序中的https网站读取xml / rss。 直到现在我的程序支持普通的http,我一直在搜索,但我似乎找不到一个简单的方法来实现对https的支持。 如果网站有一个有效的证书,这没关系,但我会擅长获取如何检查这些证书的提示。 我可能不太了解这个,所以任何暗示都是适当的! 我目前为http做的是: XmlTextReader rssReader; XmlDocument rssDoc; rssReader = new XmlTextReader(url); rssDoc = new XmlDocument(); rssDoc.Load(rssReader); 在没有可信证书的站点上尝试此操作时,我收到错误消息:“基础连接已关闭:无法为SSL / TLS安全通道建立信任关系。” string url = “https://somesite.com”; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream resStream = response.GetResponseStream(); 我的程序需要支持受信任和不受信任的https站点。 程序正在服务器上运行,因此必须在代码中处理不受信任的https站点。

.NET Standard – 以编程方式将证书和私钥合并到.pfx文件中

有没有办法将证书和密钥(两者都作为Base64字符串从服务中单独接收)组合成一个.pfx文件,使用C#/。NET标准编程 ? 使用工具不是一种选择,因为我需要自动化它。 上下文:我需要将证书和私钥(不带页眉和页脚的单独Base64字符串)加载到X509Certificate2对象,以将其从.NET Standard 1.6库传递到应用程序。 问题是,.NET Standard中的X509Certificate2类中没有PrivateKey属性! 因此,我在X509Certificate2对象中实际加载私钥的唯一方法是将它与证书本身在.pfx文件中组合,并在构造函数中加载它。

证书安装安全警告解决方法?

我有一些C#4.0代码尝试将CA(.der编码)证书安装到当前(我的)用户的“受信任的根证书颁发机构”存储中。 我的小控制台应用程序默默地对其他商店运行,但是对于这个商店,会出现一个GUI弹出窗口“您即将从证书颁发机构安装证书… Windows无法validation证书是否实际来自…..你是否想要安装这个证书吗?“ 此消息框是一个问题,因为我们的想法是使用MSI自动部署应用程序,并在正确的位置静默获取正确的证书。 拥有模态框将导致自动部署失败。 如何在没有部署中断消息框的情况下完成此安装?

System.Net.CertificatePolicy到ServerCertificateValidationCallback接受所有证书策略

我已经下载了一些有点过时的示例代码。 它有以下几类: public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy { public TrustAllCertificatePolicy() { } public bool CheckValidationResult(ServicePoint sp, System.Security.Cryptography.X509Certificates.X509Certificate cert, WebRequest req, int problem) { return true; } } 稍后在代码中调用以下内容: System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy(); 它给出了以下警告: 警告1’System.Net.ServicePointManager.CertificatePolicy’已废弃:’CertificatePolicy已针对此类型废弃,请改用ServerCertificateValidationCallback。 http://go.microsoft.com/fwlink/?linkid=14202 ‘ 实现等效function的当前程序是什么? 我在MSDN上看过一篇文章 ,但我不确定如何转换? 这是一个类库。 我道歉,如果我似乎没有对此进行过充分的研究,但是当涉及到ssl证书时,它有点超出了我的境界。 任何帮助是极大的赞赏!

如何为gRPC启用服务器端SSL?

gRPC的新function,无法找到有关如何在服务器端启用SSL的任何示例。 我使用openssl生成了一个密钥对,但它抱怨私钥无效。 D0608 16:18:31.390303 Grpc.Core.Internal.UnmanagedLibrary Attempting to load native library “…\grpc_csharp_ext.dll” D0608 16:18:31.424331 Grpc.Core.Internal.NativeExtension gRPC native library loaded successfully. E0608 16:18:43.307324 0 ..\src\core\lib\tsi\ssl_transport_security.c:644: Invalid private key. E0608 16:18:43.307824 0 ..\src\core\lib\security\security_connector.c:821: Handshaker factory creation failed with TSI_INVALID_ARGUMENT. E0608 16:18:43.307824 0 ..\src\core\ext\transport\chttp2\server\secure\server_secure_chttp2.c:188: Unable to create secure server with credentials of type Ssl. 这是我的代码 var keypair = new […]

导出X.509证书没有私钥

我认为这很简单,但显然不是。 我安装了一个具有私钥,可导出的证书,我想以编程方式仅使用公钥导出它。 换句话说,我想要一个等效于在通过certmgr导出并导出到.CER时选择“不导出私钥”的结果。 似乎所有X509Certificate2.Export方法都会导出私钥(如果存在),如PKCS#12,这与我想要的相反。 有没有办法使用C#来实现这一目标,还是我需要开始深入了解CAPICOM?