今天写程序的时候调用到一个第三方的DLL文件,本机调试一切都正常,但是程序不是到服务器以后一直提示一个BUG:"基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系"。
后来把DLL文件进行反编译,发现是在获得请求的时候出错了。
引用
WebResponse response = WebRequest.Create("https://……").GetResponse();
于是在服务器上用浏览器打开上面的地址,发现会弹出一个确认证书的窗口,看来是证书问题。
在网上一顿搜索,发现了一个决绝办法甚是好用,而且很简单,在请求之前添加一行代码。
ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();
其中AcceptAllCertificatePolicy需要自己定义:
internal class AcceptAllCertificatePolicy : ICertificatePolicy
{
public AcceptAllCertificatePolicy()
{
}
public bool CheckValidationResult(ServicePoint sPoint,
X509Certificate cert, WebRequest wRequest, int certProb)
{
// Always accept
return true;
}
}
以上方法虽然解决了遇到的问题,可是在VS中会提示ServicePointManager.CertificatePolicy已经被否决。由于我是一个喜欢完美的人,于是按照提示使用新的方法来处理。
改造后的代码更加简洁和明了
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
就这样了,一个委托搞定!
分享到:
相关推荐
在 .NET 中,常见的调试错误是未能为 SSL/TLS 安全通道建立信任关系。这种错误通常是由于客户端无法验证服务器的身份所致。解决这个错误的方法是使用证书或 SSL/TLS 握手协议来建立信任关系。 解决方案 在上面的...
Java提供的SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议是确保数据安全的重要工具。本篇将深入探讨如何使用Java实现SSL/TLS双向认证,以及涉及到的相关工具和步骤。 首先,让我们理解什么是...
为了解决这个问题,SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议应运而生,它们为网络通信提供了加密和身份验证机制。本项目就是基于这些协议,设计并实现了支持三元组认证的FTP系统。 **SSL/...
SSL/TLS(Secure Socket Layer/Transport Layer Security)安全协议是互联网上用于保护数据传输的协议标准,它为网络通信提供加密处理,确保数据在传输过程中不被窃取或篡改。该协议广泛应用于Web浏览器和其他需要...
SSL(安全套接字层)和TLS(传输层安全性)是两种广泛使用的安全协议,它们为数据传输提供加密、数据完整性和身份验证服务。SSL的最后一个版本是3.0,而TLS是基于SSL 3.0并对其进行改进后的新版本,当前的主流版本是...
SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是网络安全传输层的重要协议,它们为网络通信提供了加密处理,确保了数据在网络中的安全传输。 本示例代码着重展示了如何在Netty中集成SSL/TLS,以...
Windows Server 合规漏洞修复,修复Windows Server CVE-2016-2183 SSL/TLS协议信息泄露漏洞修复脚本,基于Windows PowerShell, 兼容Windows Server 2016/2019,防止Sweet32 生日攻击
SSL/TLS(Secure Sockets Layer/Transport Layer Security)是网络安全领域中的重要协议,主要用于保障互联网通信的安全性。在Android平台上,SSL/TLS被广泛应用于移动应用程序中,以确保用户数据的隐私和完整性。本...
解决 SSL/TLS协议信息泄露漏洞(CVE-2016-2183) ps1 文件
1. **SSL/TLS握手**:在XMPP中,SSL/TLS的整合始于握手过程,这是客户端和服务器之间建立安全连接的第一步。在这个过程中,双方交换证书、协商加密算法和共享密钥,以确保后续的数据传输是加密的。 2. **身份验证**...
"tls protocol_TLS_ssl_ssl/tls_tls pdf" 指的是文档可能涵盖了TLS协议、SSL(Secure Sockets Layer)协议以及它们之间的关系,并且是以PDF格式存储。 **描述解读:** 提供的描述简洁明了,表明这个文档是关于SSL...
SSL/TLS 是互联网上广泛采用的安全通信协议,确保数据在网络传输过程中保持私密性和完整性。 首先,让我们了解 SSL/TLS 的基本概念。SSL/TLS 提供了服务器身份验证、客户端身份验证以及数据加密。在双向认证中,...
根据提供的文件信息,我们可以深入探讨以下几个关键的知识点:SSL/TLS协议的作用与实施、加密技术在SSL/TLS中的应用以及公钥基础设施(PKI)如何支撑整个安全通信过程。 ### 1. SSL/TLS协议的基本概念及作用 **SSL...
### 理解 SSL/TLS:安全加密与网络信任 #### 一、SSL/TLS 是什么? SSL(Secure Sockets Layer)与 TLS(Transport Layer Security)是两种用于保护互联网通信安全的技术标准。这两种协议主要用于在客户端(如...
SSL/TLS协议的主要目标是为网络通信提供加密处理,验证通信双方的身份,并建立一个安全的通信通道。它主要由以下几个步骤组成: 1. **握手协议**:客户端和服务器首先通过握手协议确定使用的协议版本、加密算法以及...
本资源包含一个 openssl 工具安装包 Win32OpenSSL-...关于tomcat 进行配置 ssl 证书、完全 TLS v1.2、完全正向加密的具体步骤可以参考博客《为通过 ATS 检测 Tomcat 完全 TLS v1.2、完全正向加密及其结果检验》,地址:...
此固件是为ESP8266微控制器定制的,目的是使其能够通过SSL/TLS连接到支持MQTT协议的云服务平台,如阿里物联网套件、百度天工和Onenet。固件包含了必要的库和配置,使得ESP8266能进行安全的身份验证和加密的数据传输...
IISCrypto 是一款专为Windows服务器(如Windows 2008、2012、2016)设计的实用工具,用于解决SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议的安全问题,特别是针对CVE-2016-2183这一特定的安全...