.Net Core ABP应用如何在阿里云Linux Docker中开启Https

时间:2023-01-16 06:25:24

.Net Core应用开启Https本身就有很多种方式:
1.代码配置
2.环境变量
3.反向代理

这里主要记录下阿里云的ECS,加阿里云免费的SSL证书,通过程序代码,如何进行配置。

首先从阿里云下载证书

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

选择IIS下载,得到一个zip文件,里面是证书以及密码

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

把证书文件放到打包后的文件夹,比如我的目录

-publish
-certs
--123.pfx
-DockerFile

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

修改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实例-安全组-配置规则

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

手动添加一行,端口写443即可

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

这时候假如一切正常的话,是可以用https://ip 直接访问你的应用的,但是会提示该服务器使用证书的域名跟你输入的不一致,点击继续访问,仍然可以进去

.Net Core ABP应用如何在阿里云Linux Docker中开启Https

而使用域名来访问,则完全没有问题,可以正常进入

.Net Core ABP应用如何在阿里云Linux Docker中开启Https