由于ASP.NetCore默认服务器Kestrel不像iis Express那样会自动生成本地证书,所以就需要手动构建pfx证书.
生成pfx证书
开发环境证书就用iis默认的本地证书即可,Cortana搜索:IIS,出现以下结果点击
进入管理器:点击服务器证书选项
选中以下本地默认证书后右键导出,指定路径和密码点击确认.
修改Program中BuildWebHost以增加SSL支持
第一种方案:
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.Logging;
- using System.Net;
- namespace ASP.Net_Core_API
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- BuildWebHost(args).Run();
- }
- public static IWebHost BuildWebHost(string[] args) =>
- WebHost.CreateDefaultBuilder(args)
- .UseStartup<Startup>()
- .UseKestrel(options =>//设置Kestrel服务器
- {
- options.Listen(IPAddress.Loopback, 5001, listenOptions =>
- { <br style="margin:0px; padding:0px" /> //填入之前iis中生成的pfx文件路径和指定的密码 <br style="margin:0px; padding:0px" /> listenOptions.UseHttps("D:\\DotNetCore\\ASP.Net Core API\\wwwroot\\dontCore.pfx", "111111"); <br style="margin:0px; padding:0px" /> }); <br style="margin:0px; padding:0px" /> })<br style="margin:0px; padding:0px" /> .Build();<br style="margin:0px; padding:0px" /> }<br style="margin:0px; padding:0px" /> }
复制代码
此种方案无需更改其他代码即可生效,点击运行
可看到已监听指定的端口5001,浏览器输入https://127.0.0.1:5001/api/values,可看到已启用ssl
第二种方案:同时支持http和https请求(基于appsettings.json配置)
由于上一种方案只支持https请求,但实际生产也需要http请求
实现核心代码:
Program:
appsettings.json
- {
- "ConnectionStrings": {
- "MySqlConnection": "Server=localhost;database=NetCore_WebAPI-Mysql;uid=root;pwd=111111;"
- },
- "Logging": {
- "IncludeScopes": false,
- "Debug": {
- "LogLevel": {
- "Default": "Warning"
- }
- },
- "Console": {
- "LogLevel": {
- "Default": "Warning"
- }
- }
- },<br style="margin:0px; padding:0px" /> //以下为Kestrel配置信息,同时支持https和HTTP
- "RafHost": {
- "Endpoints": {
- "Http": {
- "IsEnabled": true,
- "Address": "127.0.0.1",
- "Port": "5000"
- },
- "Https": {
- "IsEnabled": true,
- "Address": "127.0.0.1",
- "Port": "5443",
- "Certificate": {
- "Source": "File",
- "Path": "D:\\DotNetCore\\ASP.Net Core API\\wwwroot\\dontCore.pfx",
- "Password": "111111"
- }
- }
- }
- }
- }
复制代码
点击运行会发现控制台出现监听两个端口的提示,一个支持https一个支持http
浏览器输入http://127.0.0.1:5000/api/values
http请求运行正常
再输入https://127.0.0.1:5443/api/values
https运行正常 来源:https://blog.csdn.net/qq3401247010/article/details/78111488 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |