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

.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 直接访问你的应用的,但是会提示该服务器使用证书的域名跟你输入的不一致,点击继续访问,仍然可以进去

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

原文地址:https://www.cnblogs.com/rockcode777/p/14107222.html