抄袭下面网站的内容。没有新意。
http://www.pinvoke.net/default.aspx/httpapi.httpsetserviceconfiguration
public static void SetCertificate(string ipAddress, int port, byte[] hash, bool isAdd)
{
uint retVal = (uint)NOERROR;
// initialize http
retVal = HttpInitialize(new HTTPAPI_VERSION(1, 0), HTTP_INITIALIZE_CONFIG, IntPtr.Zero);
if ((uint)NOERROR != retVal)
{
throw new Win32Exception(Convert.ToInt32(retVal));
}
HTTP_SERVICE_CONFIG_SSL_SET configSslSet = new HTTP_SERVICE_CONFIG_SSL_SET();
HTTP_SERVICE_CONFIG_SSL_KEY configSslKey = new HTTP_SERVICE_CONFIG_SSL_KEY();
HTTP_SERVICE_CONFIG_SSL_PARAM configSslParam = new HTTP_SERVICE_CONFIG_SSL_PARAM();
// set HTTP_SERVICE_CONFIG_SSL_KEY
IPAddress ip = IPAddress.Parse(ipAddress);
IPEndPoint ipEndPoint = new IPEndPoint(ip, port);
SocketAddress socketAddress = ipEndPoint.Serialize();
byte[] socketBytes = new byte[socketAddress.Size];
GCHandle handleSocketAddress = GCHandle.Alloc(socketBytes, GCHandleType.Pinned);
for (int i = 0; i < socketAddress.Size; ++i)
{
socketBytes[i] = socketAddress[i];
}
configSslKey.pIpPort = handleSocketAddress.AddrOfPinnedObject();
// set HTTP_SERVICE_CONFIG_SSL_PARAM
configSslParam.AppId = Guid.Empty;
configSslParam.DefaultCertCheckMode = 0;
configSslParam.DefaultFlags = 0;
configSslParam.DefaultRevocationFreshnessTime = 0;
configSslParam.DefaultRevocationUrlRetrievalTimeout = 0;
configSslParam.pSslCertStoreName = null;
configSslParam.pSslHash = GCHandle.Alloc(hash, GCHandleType.Pinned).AddrOfPinnedObject();
configSslParam.SslHashLength = hash.Length;
// set HTTP_SERVICE_CONFIG_SSL_SET
configSslSet.ParamDesc = configSslParam;
configSslSet.KeyDesc = configSslKey;
// convert Structure To Ptr
IntPtr pInputConfigInfo = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(HTTP_SERVICE_CONFIG_SSL_SET)));
Marshal.StructureToPtr(configSslSet, pInputConfigInfo, false);
// set or delete
if (isAdd)
{
retVal = HttpSetServiceConfiguration(
IntPtr.Zero,
HTTP_SERVICE_CONFIG_ID.HttpServiceConfigSSLCertInfo,
pInputConfigInfo,
Marshal.SizeOf(configSslSet),
IntPtr.Zero);
}
else
{
retVal = HttpDeleteServiceConfiguration(
IntPtr.Zero,
HTTP_SERVICE_CONFIG_ID.HttpServiceConfigSSLCertInfo,
pInputConfigInfo,
Marshal.SizeOf(configSslSet),
IntPtr.Zero);
}
// free memory
Marshal.FreeCoTaskMem(pInputConfigInfo);
// terminate http
HttpTerminate(HTTP_INITIALIZE_CONFIG, IntPtr.Zero);
if ((uint)NOERROR != retVal)
{
throw new Win32Exception(Convert.ToInt32(retVal));
}
}
分享到:
相关推荐
「C#实现SSLSocket加密通讯方法详解」 在网络通讯中,安全性是一个非常重要的方面,而SSL/TLS协议则是最常用的加密通讯协议之一。C#作为一个强大的编程语言,可以轻松地实现SSL/TLS协议的加密通讯。下面将详细介绍...
即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP...
C# TLS SSL TCP双向认证 X509Store SslStream Certificate Visual Studio 2017 命令提示 键入: makecert -r -pe -n “CN=TestServer” -ss Root -sky exchange 等待来自客户端的连接... 显示安全等级 密钥套件: Aes...
C# SSL服务端连接及安装数字证书
这个程序我在网上搜了,有很多方法,但是都很凌乱,很散,我集合了这些方法编写出了一个完整的pop3 加SSL加密的接收邮件方法。
net去调用java端写的https webservices 1)浏览器导入服务器cer证书 2)c#客户端引入证书
一个范例,大概讲述了c#如何访问https 的webservice.
SSL(Secure Sockets Layer)则是提供网络通信安全的协议,通常用于加密传输数据,以保护用户的隐私。在“Pop3邮件登陆(含SSL加密登陆)”这个主题中,我们将深入探讨POP3协议的工作原理以及如何在编程中实现SSL加密...
gRPC支持多种语言,包括Java、Python、Go、C#等,使得跨平台的微服务通信变得简单。 2. **OAuth**:OAuth(开放授权)是一种授权协议,允许第三方应用在用户的许可下,访问特定的资源。它常用于社交媒体、云存储等...
Windows Server 2008 /2012 中使用IIS 7 /8默认允许SSL 2.0和SSL 3.0,如果需要禁用的话可采取文档中方法
2. **处理SSL证书**:在开发环境中,可以使用`requests`库的`verify=False`选项忽略证书验证,但生产环境中需要确保证书的正确性,可以使用自签名证书或信任的CA签发的证书。 3. **处理HTTPS通过代理**:对于HTTPS...
C# 发送websocket通信 需要引用的dll
1:调用.NET2.0的MAKECERT创建含有私钥的数字证书,并存储到个人证书区; 2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件的password; 3:读取pfx文件,导出pfx中公钥和私钥; 4:用pfx证书中的公钥进行...
本项目"**C# socket smtp 邮件发送(支持SSL)**"主要探讨了如何在C#环境中使用Socket通过SMTP协议来发送邮件,并且支持安全的SSL/TLS连接,这在现代网络通信中是必不可少的安全保障。 首先,我们需要理解SMTP的工作...
【C#基础教程C# C# C# C#】是一份专门为C#编程语言初学者设计的详尽教程。C#(读作“C Sharp”)是微软公司于2000年推出的一种面向对象的、类型安全的、现代的编程语言,主要用于构建Windows平台的应用程序、Web应用...
本技术介绍将深入探讨如何使用C#实现令牌验证机制,并结合Nginx集群与SSL证书来增强WebAPI的安全性。 首先,让我们理解什么是令牌验证。令牌验证是一种身份验证方法,它通过在客户端和服务器之间交换一个唯一的、不...
C# 使用 MailKit 接收邮件 MailKit 是一个开源的 C# 邮件处理库,用于在应用程序中发送和接收电子邮件。...SSL/TLS 支持支持安全套接字层(SSL)和传输层安全性(TLS),确保邮件的安全传输。容错处理。
下面我们将详细探讨SSL的工作原理、C#中如何使用SSL以及相关的注意事项: 1. **SSL工作原理:** - 握手过程:当客户端(如浏览器)试图连接到服务器时,它们首先进行SSL握手。这个过程包括客户端发送一个“Client...
10. **安全性**:理解如何在C#中使用SSL/TLS加密MQTT连接,以及认证机制,如用户名/密码、证书等。 11. **错误处理与日志记录**:在客户端和服务端都需要处理各种异常情况,并进行合适的错误日志记录,便于排查问题...