ASP.NET Core和Https( 二 )

lhost根证书,证书无效)
- 是:web正常启动,浏览器发在地址栏显示正常的Httsp小锁?图标
在windows上,最安全方式是使用certificate store来注册已认证的HTTPS,但是有时候希望在程序内绑定证书+私钥,这样便于在不同平台上部署 。
文件证书
ASP.NET Core支持使用硬盘上文件证书来建立Https连接(这在linux上很常见) 。
以下代码允许Kestrel传入文件证书和私钥,并建立Https连接 。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel(options => { options.Listen(IPAddress.Loopback, 5000); options.Listen(IPAddress.Loopback, 5001, listenOptions => { listenOptions.UseHttps("certificate.pfx", "topsecret"); }); }) .UseStartup<Startup>;务必确保不要将私钥存储在配置文件中:在开发模式,可使用user secrets 存储此类密钥;在生产模式,可考虑Azure Key Vault或环境变量 。
更多密钥分离策略请参考: 密钥分离,.Net程序猿不再背锅
总结
希望本文有助于您大致了解ASP.NET Core中Https的应用方式 。
这不是什么高深的理论,而是尝试以不同的方式启用Https、并着重解释相关中间件的用法 。
END




推荐阅读