.Net Core应用开启Https本身就有很多种方式:
1.代码配置
2.环境变量
3.反向代理
这里主要记录下阿里云的ECS,加阿里云免费的SSL证书,通过程序代码,如何进行配置。
首先从阿里云下载证书
选择IIS下载,得到一个zip文件,里面是证书以及密码
把证书文件放到打包后的文件夹,比如我的目录
-publish
-certs
--123.pfx
-DockerFile
修改Program.cs
public static IWebHost InitWebHost(string[] args) { var x509ca = new X509Certificate2(File.ReadAllBytes(@"/app/certs/123.pfx"), "password"); return WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel(option => option.ListenAnyIP(443, config => config.UseHttps(x509ca))) .Build(); }
注意这里的路径,/app是因为部署在docker下,后面的就是正常程序发布后的目录,记得把password修改为对应密码
修改Dockerfile,加上一行
EXPOSE 443
按正常流程生成镜像并运行起来
最重要的一步,打开端口。
进入ecs实例-安全组-配置规则
手动添加一行,端口写443即可
这时候假如一切正常的话,是可以用https://ip 直接访问你的应用的,但是会提示该服务器使用证书的域名跟你输入的不一致,点击继续访问,仍然可以进去
而使用域名来访问,则完全没有问题,可以正常进入