abp vnext4.3版本托管到iis同时支持http和https协议

在项目上本来一直使用的是http协议,后来因为安全和一些其他原因需要上https协议,如果发布项目之后想同时兼容http和https协议需要更改一下配置信息,下面一起看一下:

1.安装服务器证书

首先你需要先申请一张服务器证书,申请后将证书安装到服务器上(也可以在iis中选择服务器证书导入)。

直接安装到服务器的方式
abp vnext4.3版本托管到iis同时支持http和https协议_第1张图片

或者在iis中导入服务器证书
abp vnext4.3版本托管到iis同时支持http和https协议_第2张图片
abp vnext4.3版本托管到iis同时支持http和https协议_第3张图片

2.修改appsettings.json文件

添加Urls节点:节点中配置http端口和https端口
App节点中的地址默认为localhost就可以

{
  "App": {
    "SelfUrl": "http://localhost:44386", 
    "CorsOrigins": "https://*.aaa.com,http://localhost:4200,https://localhost:44307,http://localhost:8080,http://192.168.0.86:8080",
    "RedirectAllowedUrls": "http://localhost:4200,https://localhost:44307"
  },
  "ConnectionStrings": {  
    "Default": "Server=111.111.11.11; Database=Test; Persist Security Info=True;User ID=sa;Password=123;Packet Size=512;"
  },
  "Redis": {
    "RedisConnectionString": "111.111.11.11:6379,password=12312312313,ConnectTimeout=15000,SyncTimeout=5000"
  },
  "AuthServer": {
    "Authority": "http://localhost:44386",
    "RequireHttpsMetadata": "false",
    "SwaggerClientId": "Test_Swagger",
    "SwaggerClientSecret": "1123"
  },
  "StringEncryption": {
    "DefaultPassPhrase": "paaaaaaa"
  },
  "Urls": {
    "Http": {
      "Host": "localhost",
      "Port": 44386
    },
    "Https": {
      "Host": "localhost",
      "Port": 447
    }
  },
  "Settings": {
    "Abp.Mailing.Smtp.Host": "127.0.0.1",
    "Abp.Mailing.Smtp.Port": "25",
    "Abp.Mailing.Smtp.UserName": "",
    "Abp.Mailing.Smtp.Password": "",
    "Abp.Mailing.Smtp.Domain": "",
    "Abp.Mailing.Smtp.EnableSsl": "false",
    "Abp.Mailing.Smtp.UseDefaultCredentials": "true",
    "Abp.Mailing.DefaultFromAddress": "[email protected]",
    "Abp.Mailing.DefaultFromDisplayName": "ABP application",
    "Abp.Identity.Lockout.MaxFailedAccessAttempts": 20,
    "Abp.Identity.Lockout.LockoutDuration": 180,
    //"Abp.Identity.Password.RequiredUniqueChars": false,
    "Abp.Identity.Password.RequireNonAlphanumeric": false,
    //"Abp.Identity.Password.RequireLowercase": false,
    "Abp.Identity.Password.RequireUppercase": false,
    "Abp.Identity.Password.RequireDigit": false
  }
}

3.修改Program.cs文件

把http和https的地址和端口配置到webBuilder.UseUrls(“http://localhost:44386”, “https://localhost:447”).UseStartup();

internal static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseUrls("http://localhost:44386", "https://localhost:447").UseStartup<Startup>();
                })
                .UseAutofac()
                .UseSerilog();

4.发布到iis配置http和https端口

在绑定https协议时SSL证书需要选择第一步导入的证书

如果你的域名绑定了ip
那么你既可以用http的IP去访问
也可以用https的IP去访问
还可以用域名加端口去访问
abp vnext4.3版本托管到iis同时支持http和https协议_第4张图片

你可能感兴趣的:(abp配置支持http+s)