温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET Core 1.0如何部署HTTPS

发布时间:2021-09-16 17:14:14 来源:亿速云 阅读:185 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关ASP.NET Core 1.0如何部署HTTPS的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

最近要做一个项目,正逢ASP.Net Core 1.0版本的正式发布。由于现代互联网的安全要求,HTTPS加密通讯已成主流,所以就有了这个方案。
本方案启发于一个旧版的解决方案:
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
http://www.cnblogs.com/qin-nz/p/aspnetcore-using-https-on-dnx451.html?utm_source=tuicool&utm_medium=referral
 在反复搜索官方文档并反复尝试以后得出以下解决方案
 在project.json 中,添加引用 Microsoft.AspNetCore.Server.Kestrel.Https

{  "dependencies": {  //跨平台引用  //"Microsoft.NETCore.App": {  // "version": "1.0.0",  // "type": "platform"  //},  "Microsoft.AspNetCore.Diagnostics": "1.0.0",  "Microsoft.AspNetCore.Mvc": "1.0.0",  "Microsoft.AspNetCore.Razor.Tools": {   "version": "1.0.0-preview2-final",   "type": "build"  },  "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",  "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",  "Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.0",  "Microsoft.AspNetCore.StaticFiles": "1.0.0",  "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",  "Microsoft.Extensions.Configuration.Json": "1.0.0",  "Microsoft.Extensions.Logging": "1.0.0",  "Microsoft.Extensions.Logging.Console": "1.0.0",  "Microsoft.Extensions.Logging.Debug": "1.0.0",  "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",  "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"  },  "tools": {  "BundlerMinifier.Core": "2.0.238",  "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",  "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"  },  "frameworks": {  //跨平台引用  //"netcoreapp1.0": {  // "imports": [  // "dotnet5.6",  // "portable-net45+win8"  // ]  //}  //Windows平台通用化引用  "net452": {}  },  "buildOptions": {  "emitEntryPoint": true,  "preserveCompilationContext": true  },  "runtimeOptions": {  "configProperties": {   "System.GC.Server": true  }  },  "publishOptions": {  "include": [   "wwwroot",   "Views",   "Areas/**/Views",   "appsettings.json",   "web.config"  ],  "exclude": [   "wwwroot/lib"  ]  },  "scripts": {  "prepublish": [ "bower install", "dotnet bundle" ],  "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]  } }

在Program.cs中,增加HTTPS访问端口绑定

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; namespace Demo {  public class Program  {   public static void Main(string[] args)   {    var host = new WebHostBuilder()     .UseKestrel()     .UseUrls("http://*", "https://*")     .UseContentRoot(Directory.GetCurrentDirectory())     .UseIISIntegration()     .UseStartup<Startup>()     .Build();    host.Run();   }  } }

在 Startup.cs 文件中,启用HTTPS访问并配置证书路径及密码

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System.IO; using Microsoft.AspNetCore.Http; namespace Demo {  public class Startup  {   public Startup(IHostingEnvironment env)   {    var builder = new ConfigurationBuilder()     .SetBasePath(env.ContentRootPath)     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)     .AddEnvironmentVariables();    Configuration = builder.Build();   }   public IConfigurationRoot Configuration { get; }   // This method gets called by the runtime. Use this method to add services to the container.   public void ConfigureServices(IServiceCollection services)   {    // Add framework services.    services.AddMvc();    services.Configure<Microsoft.AspNetCore.Server.Kestrel.KestrelServerOptions>(option => {     option.UseHttps(Path.Combine(new DirectoryInfo(Directory.GetCurrentDirectory()).FullName, "cret.pfx"), "pw");    });   }   // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.   public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)   {    loggerFactory.AddConsole(Configuration.GetSection("Logging"));    loggerFactory.AddDebug();    if (env.IsDevelopment())    {     app.UseDeveloperExceptionPage();     app.UseBrowserLink();    }    else    {     app.UseExceptionHandler("/Home/Error");    }    app.UseStaticFiles();    app.UseMvc(routes =>    {     routes.MapRoute(      name: "default",      template: "{controller=App}/{action=Index}/{id?}");    });    //https://docs.asp.net/en/latest/security/cors.html?highlight=https    app.UseCors(builder =>builder.WithOrigins("https://*").AllowAnyHeader());    app.Run(run =>    {     return run.Response.WriteAsync("Test");    });   }  } }

感谢各位的阅读!关于“ASP.NET Core 1.0如何部署HTTPS”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI