Tag: ssl

.net中的TLS / SSL

是否有任何(希望是免费/开源)代码可以进行本机TLS / SSL通信? 我不谈论HTTPListener / Client和WebRequest类。 我想在我的C#代码中进行原始TLS通信。 提前谢谢,马克斯

检查自签名证书(SSL,C#)

在我的桌面应用程序中,我使用HTTPS连接。 证书是自签名的。 我如何以编程方式检查 c#中的自签名证书? 我使ia回调“ValidateRemoteCertificate”: ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate) 默认情况下,我的“ValidateRemoteCertificate”方法始终返回TRUE。 但我认为我需要检查此证书的有效或无效。 怎么检查? 我必须在“ValidateRemoteCertificate”中查看什么?

在Windows 8应用程序中使用SSL证书编程

我需要帮助: 我们的后端由自签名证书担保。 让我们称之为:OurMegaCoolCertificate.cer 因此,我们使用certmgr.msc将此证书导入我们的开发人员计算机。 现在我们可以使用以下代码从后端检索数据: async public static Task getData(string Id, string Type) { String url = “https://BACKEND/API/?Id=” + Id + “&Type=” + Type; HttpClientHandler aHandler = new HttpClientHandler(); aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic; HttpClient aClient = new HttpClient(aHandler); aClient.DefaultRequestHeaders.ExpectContinue = false; aClient.DefaultRequestHeaders.MaxForwards = 3; Uri requestUri = new Uri(url); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUri); //request.Headers.ExpectContinue […]

SSL客户端/服务器相互认证

您好我正在尝试在C#中使用服务器和客户端证书进行相互身份validation的ssl客户端/服务器通信。 设法只使用服务器证书进行ssl通信,在客户端我使用这样的: TcpClient client = new TcpClient(machineName, port); //Create an SSL stream that will close the client’s stream. SslStream sslStream = new SslStream( client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null ); try { // The server name must match the name on the server certificate. sslStream.AuthenticateAsClient(serverName); } catch (AuthenticationException e) { Console.WriteLine(“Exception: {0}”, e.Message); if (e.InnerException != […]

为ServicePointManager.SecurityProtocol设置每个请求值

在c#中,我可以为SSL3或TLS设置静态值,例如 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; 要么: ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 但是(我相信)这将影响我的应用程序中所有未来的HttpWebRequest对象。 有没有办法为给定的HttpWebRequest或至少为给定的URI设置此值? 注意我已经看到了这个: Uri uri = new Uri(url); ServicePoint sp = ServicePointManager.FindServicePoint(uri); 但ServicePoint没有SecurityProtocol属性。 目前我认为我必须在创建新的HttpWebRequest之前设置静态全局属性。 这感觉不对,这也意味着: 我必须确保多个线程不同时执行此操作。 我不确定这个设置在什么时候被“使用”(即当我调用webRequest.GetResponse()时,是否访问了ServicePointManager.SecurityProtocol并绑定到该URI?)。

在SslStream中禁用不安全的重新协商

我在.NET中编写了一个使用SslStream支持HTTPS的Web服务器。 不幸的是,ssllabs.com输出以下关于我的实现的消息: 此服务器易受MITM攻击,因为它支持不安全的重新协商。 这链接到有关该漏洞的有趣博客条目 。 如何在.NET的SslStream禁用重新协商?

在HTTPS请求中,Request.IsSecureConnection返回false

我有一个在https(SSL)中工作的asp.net应用程序。 这在我的本地计算机和Amazon AWS(生产环境)中运行良好。 但是当我在办公室托管这个应用程序(用于测试)时,会发生一些奇怪的事情 我可以在浏览器和锁定标志中看到https 。 Fiddler还显示输出已加密并显示端口443。 但是HttpContext.Current.Request.IsSecureConnection返回false 并且HttpContext.Current.Request.Url.Scheme返回http 。 在办公室,我们使用的是Juniper SSG防火墙和TMG 2010(Forefront Threat Management Gateway 2010)。 因此服务器通过Juniper和TMG 2010接收请求。提前感谢。

.Net 3.5上的Web服务客户端应用程序的SSL和过时TLS(1.0和1.1)

根据PCI,我们需要根据http://blog.securitymetrics.com/2015/04/pci-3-1-ssl-and-从2016年6月30日起停止使用SSL和TLS(在某些实施中为1.0和1.1)。 tls.html 我们在.Net 3.5上构建了一个客户端应用程序,它使用HttpWebRequest对象连接到Web服务。 根据MSDN SecurityProtocolType( https://msdn.microsoft.com/en-us/library/system.net.securityprotocoltype ( v= vs.110).aspx)仅支持.Net Framework 4上的Ssl3和Tls(1.0)或下面。 Tls11和Tls12仅在.Net Framework 4.5 / 4.6中受支持 这是否意味着在Cardholder数据环境中并且完全符合pci,我们需要将所有应用程序升级到.Net 4.5 / 4.6并且只允许Tls12 SecurityProtocolType使用HttpWebRequest连接到外部Web服务?

确保仅通过SSL访问页面

如何确保我的用户无法在物理上键入http:绕过我的SSL并确保每个页面都是https:? 可能是我主页上的重定向?

在* some * WebAPI控制器上禁用SSL客户端证书?

为未来的读者编辑 :不幸的是,获得赏金的答案不起作用; 我现在无能为力。 但是请在下面阅读我自己的答案(通过测试) – 确认可以使用最少的代码更改 我们有一个完全在ASP.NET WebAPI 2.2中的Azure云服务(WebRole)(没有MVC,前端是Angular)。 我们的一些控制器/ REST端点通过SSL(客户端证书身份validation/相互身份validation)与第三方云服务通信,其余控制器/端点与HTML5 / AngularJS前端通信,也通过SSL(但更传统的服务器身份validation) SSL)。 我们没有任何非SSL端点。 我们通过云服务启动任务启用了客户端SSL,例如: IF NOT DEFINED APPCMD SET APPCMD=%SystemRoot%\system32\inetsrv\AppCmd.exe %APPCMD% unlock config /section:system.webServer/security/access 问题:该设置是站点范围的,因此即使用户访问第一页(例如https://domain.com ,返回angular.html的index.html),他们的浏览器也要求他们提供客户端SSL证书。 (下图) 如果有办法要么 将客户端SSL证书请求限制为仅与第三方云服务通信的WebAPI控制器? 要么 为我们的前端驱动webapi控制器跳过客户端SSL身份validation? 我们的服务器的web.config很复杂,但相关的代码片段如下: 并且客户端的屏幕截图访问常规WebAPI端点但尚未尝试客户端SSL身份validation(在任何浏览器,Chrome,Firefox或IE中都会发生)