ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)
來源:易賢網(wǎng) 閱讀:1634 次 日期:2016-08-05 15:06:34
溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)”,方便廣大網(wǎng)友查閱!

最近要做一個(gè)項(xiàng)目,正逢ASP.Net Core 1.0版本的正式發(fā)布。由于現(xiàn)代互聯(lián)網(wǎng)的安全要求,HTTPS加密通訊已成主流,所以就有了這個(gè)方案。

本方案啟發(fā)于一個(gè)舊版的解決方案:

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

在反復(fù)搜索官方文檔并反復(fù)嘗試以后得出以下解決方案

在project.json 中,添加引用 Microsoft.AspNetCore.Server.Kestrel.Https

{

 "dependencies": {

 //跨平臺(tái)引用

 //"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": {

 //跨平臺(tái)引用

 //"netcoreapp1.0": {

 // "imports": [

 // "dotnet5.6",

 // "portable-net45+win8"

 // ]

 //}

 //Windows平臺(tái)通用化引用

 "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");

   });

  }

 }

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)