首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将SSL添加到使用httplistener的.net应用程序 - 它将*不会在IIS上运行

要将SSL添加到使用HttpListener的.NET应用程序,请按照以下步骤操作:

  1. 生成证书

首先,您需要生成一个证书,以便在应用程序中使用。您可以使用MakeCert.exe工具生成证书。请按照以下步骤操作:

  • 打开命令提示符(以管理员身份运行)
  • 转到C:\Program Files (x86)\Windows Kits\10\bin\x64目录
  • 运行以下命令:
代码语言:txt
复制
MakeCert.exe -r -pe -n "CN=localhost" -b 01/01/2020 -e 01/01/2030 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

这将生成一个证书,名为“localhost”,并将其安装到计算机的证书存储中。

  1. 获取证书

接下来,您需要从证书存储中获取证书。您可以使用以下代码来实现这一点:

代码语言:csharp
复制
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName, "localhost", false);
X509Certificate2 cert = certs[0];
store.Close();
  1. 创建HttpListener

现在,您可以创建一个使用SSL的HttpListener。请按照以下代码示例操作:

代码语言:csharp
复制
HttpListener listener = new HttpListener();
listener.Prefixes.Add("https://localhost:443/");
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;
listener.SslConfiguration.EnabledSslProtocols = SslProtocols.Tls12;
listener.SslConfiguration.ServerCertificate = cert;
listener.Start();

请注意,您需要将“localhost”替换为您的域名,并将端口号更改为您要使用的端口号。

  1. 处理请求

最后,您可以处理传入的请求,并将响应发送回客户端。请按照以下代码示例操作:

代码语言:csharp
复制
while (true)
{
    HttpListenerContext context = listener.GetContext();
    HttpListenerRequest request = context.Request;
    HttpListenerResponse response = context.Response;

    // 处理请求并生成响应内容
    string responseContent = "Hello, world!";

    // 设置响应头
    response.ContentType = "text/plain";
    response.ContentLength64 = Encoding.UTF8.GetByteCount(responseContent);

    // 将响应内容写入响应流
    Stream output = response.OutputStream;
    byte[] buffer = Encoding.UTF8.GetBytes(responseContent);
    output.Write(buffer, 0, buffer.Length);
    output.Close();
}

现在,您已经成功将SSL添加到使用HttpListener的.NET应用程序中。请注意,这个示例仅用于演示目的,实际应用程序可能需要更多的错误处理和安全措施。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET MVC随想录——锋利KATANA

ASP.NET Framework (System.Web)紧耦合IIS IIS只能运行在Windows系统 ASP.NET MVC 由于Web Form产生一大堆ViewState和客户端脚本,这对开发者来说慢慢变成一种累赘...OwinHost :如果你对上面两种Host还不满意,那么最后一个选择是使用Katana提供OwinHost.exe:他是一个命令行应用程序运行在项目的根部,启动HttpListener Server...接口,当然我们也可以使用最原始方式来输出"Hello World"字符串,即Owin程序集为我们提供最原始方式,这仅仅是学习参考,虽然我们不会在正式场景下使用: using AppFunc =...IIS带有的一些功能(SSL、Event Log、Diagnostics、Management…),当然这可以自己来实现。...因为类库不能直接运行,那么只能在它根目录调用OwinHost.exe来托管,它将加载.\bin文件下所有的程序集,所以需要改变类库默认输出,如下所示: ?

1.6K80

如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义Server

我们在上面对ASP.NET Core默认提供具有跨平台能力KestrelServer进行了详细介绍(《聊聊ASP.NET Core默认提供这个跨平台服务器——KestrelServer》),为了让读者朋友们对管道中...我们直接运行这个程序并利用浏览器访问默认监听地址(http://localhost:5000),服务端响应“Hello World”字符串会按照如下图所示形式显示在浏览器。 ?...上面这个HttpListenerServerFeature实际就是对这个作为原始上下文HttpListenerContext对象封装,或者说它是管道使用DefaultHttpContext与这个原始上下文之间沟通中介...如下面的代码片段所示,用来监听请求HttpListener在构造函数中被创建,与此同时,我们会创建一个用于获取监听地址ServerAddressesFeature对象并将其添加到属于自己特性列表中...当HttpListenerServer随着Start方法调用而被启动后,它将这个ServerAddressesFeature对象提取出来,然后利用它得到所有的地址并添加到HttpListenerPrefixes

74080

一个MiniASP.NET Core框架实现

我在腾讯视频看到了这个课程录像,看了两遍之后结合蒋金楠老师博客《200行代码,7个对象—让你了解ASP.NET Core框架本质》一文进行了学习并下载了源代码进行研究,然后将其改成了基于.NET...Standard版本,通过一个.NET Framework和一个.NET Core宿主端来启动一个ASP.NET CoreServer,并将其放到了GitHub,欢迎Clone学习。...Framework和.NET Core应用程序使用;   第二部分是AspNetCore.Mini.App,这是一个基于.NET Framework 4.6.1控制台应用程序,它是一个使用了AspNetCore.Mini.Core...宿主程序,可以直接执行;   第三部分是AspNetCore.Mini.AppCore,这是一个基于.NET Core 2.1控制台应用程序,它是一个使用了AspNetCore.Mini.Core宿主程序...我们知道,在ASP.NET Core中封装了Kestrel和IIS两个Server供我们使用,那么它们肯定有一个抽象层(这里是接口),定义了他们共有的行为,这里我们也写一个IServer: public

1K20

ASP.NET Core 进程外(out-of-process)托管(7)《从零开始学ASP.NET CORE MVC》

在上节课中我们讨论了什么是Kestrel 根据您运行asp.net Core 应用程序方式不同,可能会,也可能不会使用外部Web服务器。...当我们使用. net Core CLI 运行 asp. net Core 应用程序时, Kestrel 是唯一用于处理和处理传入 HTTP 请求 web 服务器。 ?...在后面的视频课程中,我们将学习如何将ASP.NET Core应用程序部署到IIS使用IIS作为反向代理服务器。...当我们直接从Visual Studio运行asp.net Core 应用程序时,它默认使用IIS Express。...一个常见问题 我们可以在不使用内置Kestrel Web服务器情况下运行asp.net Core 应用程序吗? 答案是肯定可以,你要相信.NET Core开发团队。

1.5K50

学习ASP.NET Core, 怎能不了解请求处理管道: 自定义一个服务器感受一下管道是如何监听、接收和响应请求

在正式介绍HttpListenerServer设计和实现之前,我们先来显示一下如何将它应用到 一个具体Web应用中。...我们直接运行这个程序并利用浏览器访问默认监听地址(http://localhost:5000),服务端响应“Hello World”字符串会按照如下图所示形式显示在浏览器。 ?...上面这个HttpListenerServerFeature实际就是对这个作为原始上下文HttpListenerContext对象封装,或者说它是管道使用DefaultHttpContext与这个原始上下文之间沟通中介...如下面的代码片段所示,用来监听请求HttpListener在构造函数中被创建,与此同时,我们会创建一个用于获取监听地址ServerAddressesFeature对象并将其添加到属于自己特性列表中...当HttpListenerServer随着Start方法调用而被启动后,它将这个ServerAddressesFeature对象提取出来,然后利用它得到所有的地址并添加到HttpListenerPrefixes

942100

ASP.NET 5 Beta 8 发布

导入了大量复杂性和不一致性,在 IIS 中承载 ASP.NET 5 应用程序现在使用 IIS HttpPlatformHandler转发到 ASP.NET 5 Kestrel 服务器。...新宿主模型带来好处包括: IIS应用程序池不需要运行托管代码,类似于在IIS运行PHP那样,根本不会在IIS加载CLR 不再需要安装Windowsasp.net组件 IIS可以同时运行...startupTimeLimit="3600"/> 此 web.config 文件将 HttpPlatformHandler 添加到应用程序和配置处理程序....NET 2.0 和.NET 3.5,只需要在你 project.json 文件框架节点中使用 net20 和 net35 target framework。...当然还是有很多问题等待修复,例如在CentOS对.NET Core支持还是有问题,在Linux/Mac还是运行不了全堆栈.NET Framework, 这个还得依赖于Mono。

1.5K90

基于ASP.NET WebAPI OWIN实现Self-Host项目实战

引用 寄宿ASP.NET Web API 不一定需要IIS 支持,我们可以采用Self Host 方式使用任意类型应用程序(控制台、Windows Forms 应用、WPF 应用甚至是Windows...原理图 4.3、那么我们今天要解决问题可以总结为下面的一句话: 如何让WEB网页端直接以HTTP方式访问本地桌面客户端,就像访问远程IISWeb应用程序一样?...4.4、实现WEB应用程序Self-Host解决方案 通过HttpListener实现简单Http服务(.NET 2.0+) 基于WCF堆栈自宿主SelfHosting 采用ASP.NET...HttpSelfHost来承载WebAPI服务 (.NET 4.0+) 采用ASP.NET OWIN来承载WebAPI服务(.NET4.5微软推荐使用) 等等.........五、涉及覆盖知识点 ASP.NET WebAPI HttpSelfHost/OWIN 如何以桌面应用程序方式,宿主承载WebApi服务; ASP.NET WebAPI HttpSelfHost/OWIN

93520

ASP.NET Core模块概述

ANCM也有重启崩溃进程功能。和运行IIS进程中,通过WAS(Windows Activation Service)进行管理传统ASP.NET 应用,在本质是相同。...怎么在ASP.NET Core应用中使用ANCM 这一节提供了对IIS服务器和ASP.NET Core应用设置过程概述。更详细信息,请参考发布到IIS。...这种机制有利于例如在MacOS开发测试程序并部署到运行IIS服务器场景。当在Mac运行时,Kestrel以web服务器身份存在,但是当应用部署到IIS环境时,它会自动搭接ANCM和IIS。...当你不借助IIS运行应用时,它将会侦听默认端口号http://localhost:5000。 当不借助IIS运行应用时,如果你仍需要设置端口号,你可以调用UseURLs。...在开发中借助IIS Express运行应用 通过使用ASP.NET Core模板定义默认配置文件,Visual Studio可以启动IIS Express服务。

1.6K80

.Net Web开发技术栈

Base Class Library(BCL基类库) System.Web(ASP.NET核心) ASP.NETIIS管道模型: 经典模式IIS5/IIS6: IIS管道模型 ASP.NET管道模型...IIs常用功能及使用及配置: 请求筛选、失败请求跟踪等 .Net MVC生命周期 Httphandler、HttpModule、Globar编写及应用... ......Host(宿主) IIS Custom Host OwinHost.exe Node.Js(connect-owin) ... .NET CLR(Commen Language Runtime)公用语言运行时...SSL Secure Socket Layer,安全套接字层,保护Web通讯,以实现客户端和服务器之间安全通讯 HTTPS:是在HTTP建立SSL加密层,并对传输数据进行加密,是HTTP协议安全版...TLS Transport Layer Security,安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性,建立在SSL 3.0协议规范之上,是SSL 3.0后续版本 Web安全 渗透注入

4.9K30

使用FakeNet-NG改进动态恶意软件分析

例如,可用于在连接时将调试器挂载到正在运行样本。如下所示,示例样本使用 HTTP 协议通过 TCP 80 端口与 C&C 服务器通信。 ? 在样本建立连接后,可以将调试器挂载到样本。...执行调试器 x32dbg.exe,该调试器挂载到正在运行进程。...重新启动 FakeNet-NG 并再次运行样本后,可以看到 x32dbg 启动且挂载到样本文件。 ? 现在即可使用 Scylla 或 OllyDumpEx 将可执行文件转存进行静态分析。 ?...解密 SSL 流量 恶意软件使用 SSL 进行网络通信,由于对数据包进行了加密就阻碍流量分析。使用 FakeNet-NG ProxyListener 可以解密流量。...ProxyListener 检测 SSL 协议,使用 Python OpenSSL 库成为中间人。

1.1K10

分布式日志框架Exceptionless之生产环境部署步骤

Exceptionless 是一个开源实时日志收集框架,它将日志收集变得简单易用并且不需要了解太多相关技术细节及配置。...相信你会有两个疑问:   (1)为何要用.NET 4.7和IIS?   ...因为ExceptionlessWeb Dashboard是基于ASP.NET(基于.NET Framework)实现,因此需要.NET 4.7(当然4.6.1也是支持)和IIS(.NET Framework...因为我要部署阿里云服务器刚好是一台Windows Server 2016,因此也很方便地安装了.NET 4.7和IIS 10。...2.3 部署Web控制台项目   由于我环境是Windows Server 2016,因此启动IIS,按照老习惯创建一个.NET应用程序池(v4.0)来附加wwwroot文件夹作为Web控制台,端口号默认设为

1.4K30

红队技巧-在端口限制下砥砺前行

资料参考 端口复用,顾名思义,就是一个端口多个应用程序使用,在常理看来,一个端口就一个应用程序,但是实际是可以。...在windows中,lls web服务器使用HTTP.sys中Net.tcp Port Sharing服务,配合WinRM实现端口复用,可以实现正向后门 HTTP.sys HTTP.sys是Microsoft...- 为了优化IIS服务器性能 - 从IIS6.0引入(即Windows Server 2003及以上版本) - IIS服务进程依赖HTTP.sys HTTP.sys监听HTTP流量,然后根据URL注册情况去分发...整个过程描述如下: 1.注册:IIS或其他应用使用HTTP Server API时,需要先在HTTP.sys上面注册url prefix,以监听请求路径(我们可以自己注册一个url prefix) 命令...(2) Net.tcp Port Sharing Net.tcp Port Sharing服务是WCF(Windows Communication Foundation,微软一个框架)中一个新系统组件

1.2K10

【ASP.NET Core 基础知识】--安全性--SSL和HTTPS配置

这可能涉及将证书文件上传到服务器、配置服务器软件(如Apache、Nginx、IIS等)以使用SSL证书,并确保SSL连接正常运行。...: 运行 ASP.NET Core 应用程序时,确保选择 URL 使用了 HTTPS 协议。...通过执行以上步骤,你就可以在 ASP.NET Core 开发环境中启用 HTTPS,从而确保你应用程序在开发过程中能够使用安全加密连接。...这可以通过Web服务器配置文件来实现,例如在Nginx中使用return 301指令或者在ASP.NET Core应用程序使用中间件来实现。...具体配置取决于你使用服务器(如IIS、Nginx等)。 通过使用上述步骤,在ASP.NET Core应用程序中配置中间件来启用HTTPS。

5300
领券