Tag: ssl certificate

HttpWebrequest失败,内部exceptionvalidation失败,因为远程方已关闭传输流

使用C#,。Net 4.5,我试图通过远程服务器上的HttpWebRequest发送Web请求。 请参阅下面的代码。 我尝试了一些论坛建议的大部分解决方案,但我总是遇到同样的错误。 请参阅下面的堆栈跟踪。 调用request.GetReponse()方法时抛出错误。 其他信息,基本上,我正在尝试调用安装在远程服务器上的vmware的vCenter组件的reloadSslCertificatefunction。 目前,该错误仅发生在vCenter 5.5上。 它在5.1及以下版本中运行良好。 var uri = String.Format(“https://{0}/some_url”, serverName); var request = (HttpWebRequest)WebRequest.Create(uri); request.KeepAlive = true; request.Accept = “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”; request.Headers.Set(HttpRequestHeader.AcceptLanguage, “en-US,en;q=0.8”); request.Credentials = credential; request.CookieContainer = cookieContainer; var response = request.GetResponse(); exception:System.Net.WebException:基础连接已关闭:发送时发生意外错误。 —> System.IO.IOException:身份validation失败,因为远程方已关闭传输流。 System.Net.Security.SslState.Ss上的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)中的System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,Byte [] buffer,AsyncProtocolRequest)上的System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数,AsyncProtocolRequest asyncRequest)中的CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest) asyncRequest)在System.Net.Se.SlsStream.CallProcessAuthentication(对象状态)的System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)处于System.Threading.ExecutionContext.RunInternal(ExecutionContext […]

X509Certificate.CreateFromCertFile – 指定的网络密码不正确

我有一个.NET应用程序,我想用它作为客户端来调用SSL SOAP Web服务。 我已经获得了一个名为foo.pfx的有效客户端证书。 证书本身有密码。 我已将证书放在以下位置: C:\certs\foo.pfx 要调用Web服务,我需要附加客户端证书。 这是代码: public X509Certificate GetCertificateFromDisk(){ try{ string certPath = ConfigurationManager.AppSettings[“MyCertPath”].ToString(); //this evaluates to “c:\\certs\\foo.pfx”. So far so good. X509Certificate myCert = X509Certificate.CreateFromCertFile(certPath); // exception is raised here! “The specified network password is not correct” return cert; } catch (Exception ex){ throw; } } 听起来像是试图读取磁盘的.NET应用程序的例外。 CreateFromCertFile方法是一个静态方法,应该创建X509Certificate的新实例。 该方法未被覆盖,并且只有一个参数:路径。 当我检查exception时,我发现: _COMPlusExceptionCode […]

绕过.net核心中的无效SSL证书

我正在开发一个需要连接到https站点的项目。 每次连接时,我的代码都会抛出exception,因为该站点的证书来自不受信任的站点。 有没有办法绕过证书检查.net核心http? 我在以前版本的.NET中看到了这段代码。 我想我只需要这样的东西。 ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

如何使用客户端证书在Web API中进行身份validation和授权

我正在尝试使用客户端证书来使用Web API对设备进行身份validation和授权,并开发了一个简单的概念certificate来解决潜在解决方案的问题。 我遇到的问题是Web应用程序没有收到客户端证书。 一些人报告了这个问题, 包括在本问答中 ,但他们都没有答案。 我希望提供更多细节来重振这个问题,并希望得到我的问题的答案。 我对其他解决方案持开放态度。 主要要求是用C#编写的独立进程可以调用Web API并使用客户端证书进行身份validation。 此POC中的Web API非常简单,只返回单个值。 它使用一个属性来validation是否使用了HTTPS以及是否存在客户端证书。 public class SecureController : ApiController { [RequireHttps] public string Get(int id) { return “value”; } } 以下是RequireHttpsAttribute的代码: public class RequireHttpsAttribute : AuthorizationFilterAttribute { public override void OnAuthorization(HttpActionContext actionContext) { if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps) { actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden) { ReasonPhrase = “HTTPS […]

访问azure色网站上传的证书

当我使用网络角色时,我只是在azure色门户网站上传证书,我能够看到它。现在我已经切换到azure的网站,我将证书上传到azure管理门户网站,但我的代码没有看到它一点都不 是否有一些配置我们需要或以其他方式访问azure网站上传的证书。 这就是我尝试访问上传的证书的方式。 private List GetAvailableCertificatesFromStore() { var list = new List(); var store = new X509Store(StoreName.My,StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); try { foreach (var cert in store.Certificates) { // todo: add friendly name list.Add(string.Format(“{0}”, cert.Subject)); } } finally { store.Close(); } return list; }

使用SSL和SslStream进行对等身份validation?

我需要在使用TCP / IP套接字进行通信的各种进程之间提供安全通信。 我想要身份validation和加密。 我不想重新发明轮子,而是真的想使用SSL和SslStream类以及自签名证书。 我想要做的是根据本地应用程序中的已知副本validation远程进程的证书。 (不需要是证书颁发机构,因为我打算手动复制证书)。 为此,我希望应用程序能够在第一次运行时自动生成新的证书。 除了makecert.exe之外,看起来此链接显示了一种自动生成自签名证书的方法,因此这是一个开始。 我查看了SslStream的AuthenticateAsServer和AuthenticateAsClient方法。 您可以提供回电validation,因此看起来可能。 但是现在我已经了解了它的细节,我真的不认为这样做是可能的。 我正朝着正确的方向前进吗? 还有更好的选择吗? 有没有人之前做过这样的事情(基本上是点对点SSL而不是客户端服务器)?

如何从.NET设置X.509证书的私钥文件的读取权限

以下是将pfx添加到Cert商店的代码。 X509Store store = new X509Store( StoreName.My, StoreLocation.LocalMachine ); store.Open( OpenFlags.ReadWrite ); X509Certificate2 cert = new X509Certificate2( “test.pfx”, “password” ); store.Add( cert ); store.Close(); 但是,我找不到为NetworkService设置访问私钥的权限的方法。 任何人都能解释一下吗? 提前致谢。