ASP.NET Core部署HTTPS

ASP.NET Core Kestrel部署HTTPS

1,在program.cs中CreateHostBuilder 替换成如下内容:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                .ConfigureServices((context, services) =>
                {
                    // 这是在appsettings中配置后加载配置
                    // 当然也可以在startup中加载配置
                    services.Configure<KestrelServerOptions>(
                        context.Configuration.GetSection("Kestrel"));
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    // 这是在代码中配置,而不是配置文件配置
                    //webBuilder.UseKestrel(option => {
                    //    option.Listen(IPAddress.Loopback, 80);
                    //    option.Listen(IPAddress.Loopback, 443,
                    //    listenOptions =>
                    //    {
                    //        listenOptions.UseHttps("localhostcert.pfx", "localhost");
                    //    });
                    //});.UseUrls("https://*:443")
                    webBuilder.UseStartup<Startup>();
                });
public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<KestrelServerOptions>(
            Configuration.GetSection("Kestrel"));
    }

上面两段代码描述的都是Kestrel服务的option从配置文件中读取
紧接着在startup中增加 app.UseHttpsRedirection(); app.UseHsts();//默认是开启的,如果是,就不用管它
2,在配置文件appsettings.json中增加,这是单独的配置节点 ,其中path,是pfx文件的位置,password是证书的密码,在阿里云申请的证书,下载iis版的就有这两个。

"Kestrel": {
    "Limits": {
      "MaxRequestBodySize": 9223372036854775807,
      "MaxRequestBufferSize": 9223372036854775807,
      "MaxRequestLineSize": 9223372036854775807
    },
    "Endpoints": {
      "Https": {
        "Url": "https://*:443",
        "Certificate": {
          "Path": "/xxxx.pfx",
          "Password": "xxx"
        }
      }
    }
  }

这里的配置项可以参考微软的文档,基本上大多数需要代码显式指定的配置在appsettings.json中都是可以直接配置的
参考文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#endpoint-configuration

Linux ASP.NET Core程序配置https 下 nginx 的配置

server {
       listen 443;
       server_name serverName1.com;
       ssl on;
       root '/';
       ssl_certificate 'xxxx.pem';
       ssl_certificate_key 'xxxx.key';
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout  10m;
       ssl_ciphers PROFILE=SYSTEM;
       ssl_prefer_server_ciphers on;
       include /etc/nginx/default.d/*.conf;
       location / {
            proxy_pass http://127.0.0.1:5000;
       }
       error_page 404 /404.html;
           location = /40x.html {
       }

       error_page 500 502 503 504 /50x.html;
           location = /50x.html {
       }
   }

nginx的主配置文件是 /etc/nginx/nginx.conf 直接修改这个文件,分别对N个需要ssl的站点进行配置,如下,监听端口都是443,区别是server_name ,根据需要配置的域名,分别写对应的server_name,
加粗部分是需要特别关注的,pem,和key这两 如果是在阿里云申请的ssl,下载的时候选择 nginx版的,就包含下边需要的两文件,可以放到任意位置,这里填写的是这两文件的路径,location里边的内容是转发的本地端口对应的就是域名对应的子网站。子网站必须是发布了的,可访问的站点,另外需要特别注意一下
子网站不需要任何证书,只需要可以访问即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要将ASP.NET Core部署到Linux,您需要执行以下步骤: 1. 安装.NET Core运行时环境:在Linux上安装.NET Core运行时环境,以便您的应用程序可以在Linux上运行。 2. 编译应用程序:使用.NET Core CLI编译您的ASP.NET Core应用程序。 3. 配置Web服务器:选择一个Web服务器,例如Nginx或Apache,并配置它以便它可以将请求转发到您的应用程序。 4. 部署应用程序:将编译的应用程序和所有依赖项复制到Linux服务器上,并启动应用程序。 5. 测试应用程序:使用浏览器或命令行工具测试您的应用程序是否在Linux上运行正常。 请注意,部署ASP.NET Core应用程序到Linux可能需要一些额外的配置和调试,因此建议您在开始之前仔细阅读官方文档和相关教程。 ### 回答2: ASP.NET Core 是一种跨平台的 Web 开发框架,可以在 Windows、Linux 和 macOS 上运行。本篇文章将介绍将 ASP.NET Core 部署到 Linux 上的过程。 首先,需要准备一台 Linux 服务器,可以选择云服务器或者本地虚拟机。在服务器上需要安装 .NET Core 运行时环境,可以参考 Microsoft 官方文档进行安装,一般需要执行以下命令: ``` sudo apt-get update sudo apt-get install dotnet-sdk-3.1 ``` 安装完成后,需要编写 ASP.NET Core 应用程序,并将其打包成可执行文件。 在 Visual Studio 或者 Visual Studio Code 中创建 ASP.NET Core 项目,然后选择“发布”选项,可以选择将项目发布到文件夹或者直接打包成可执行文件。如果选择打包成可执行文件,可以使用以下命令: ``` dotnet publish -c Release -r linux-x64 ``` 其中,linux-x64 表示将程序打包成针对 Linux 的 64 位版本,如果需要打包成其他版本,可以参考 Microsoft 官方文档进行修改。 打包完成后,需要将程序上传到 Linux 服务器上。可以使用 SSH 或者 FTP 等方式进行上传。上传完成后,在 Linux 中,需要给可执行文件添加可执行权限,使用以下命令: ``` chmod +x [可执行文件名] ``` 接着,进入程序所在的文件夹并启动程序,使用以下命令: ``` cd [程序所在的文件夹] ./[可执行文件名] ``` 程序启动后,可以使用浏览器访问 Linux 服务器的 IP 地址和端口号来访问 ASP.NET Core 应用程序。 需要注意的是,如果应用程序需要连接数据库等外部服务,需要在 Linux 服务器上安装相应的数据库和服务,并进行配置。此外,需要在 Linux 服务器上配置防火墙规则,允许外部访问 ASP.NET Core 应用程序所在的端口。 总结起来,将 ASP.NET Core 部署到 Linux 上需要完成以下步骤: 1. 安装 .NET Core 运行时环境; 2. 编写 ASP.NET Core 应用程序,并将其打包成可执行文件; 3. 将可执行文件上传到 Linux 服务器,并添加可执行权限; 4. 启动应用程序,并配置相应的数据库和服务; 5. 配置防火墙规则允许外部访问 ASP.NET Core 应用程序。 以上就是 ASP.NET Core 部署到 Linux 的过程,通过这种方式,可以更好地实现跨平台的 Web 开发。 ### 回答3: ASP.NET Core 是一种跨平台的开发框架,用于构建 Web 应用程序。ASP.NET Core 带有多种选项,其中之一是将开发的 ASP.NET Core 应用程序部署到 Linux 上。以下是 ASP.NET Core 部署到 Linux 的过程。 一、在 Linux 上安装 ASP.NET Core 和运行环境 首先,需要在 Linux 中安装 .NET Core 运行时环境和 ASP.NET Core。在 Linux 上, .NET Core 支持 RHEL、Ubuntu、Debian、CentOS、Fedora 和 Linux Mint 等主要发行版。 二、将 ASP.NET Core 应用程序打包为 Linux 适用的发布包 要将 ASP.NET Core 应用程序打包为 Linux 适用的发布包,需要打开终端并切换到 ASP.NET Core 项目源目录。然后使用“dotnet publish”命令生成发布包。 三、将发布包复制到 Linux 服务器 将应用程序的发布包复制到 Linux 服务器,可以使用 Secure Copy(SCP)来完成。在本地计算机上打开终端,输入以下命令: scp -r /pach/to/publish/folder username@servername:/var/aspnetcore/publish 四、创建 Systemd 服务 在 Linux 上为 ASP.NET Core 应用程序启用自动启动和自动重启,需要创建 Systemd 服务。可以使用编辑器打开 .service 文件,文件位置 /etc/systemd/system/myapp.service: [Unit] Description=MyApp ASP.NET Core Application [Service] WorkingDirectory=/var/aspnetcore/publish ExecStart=/usr/bin/dotnet /var/aspnetcore/publish/MyApp.dll Restart=always RestartSec=10 SyslogIdentifier=myapp User=www-data Environment=ASPNETCORE_ENVIRONMENT=Production [Install] WantedBy=multi-user.target 五、启动应用程序 使用以下命令来启动 ASP.NET Core 应用程序: sudo systemctl start myapp 之后就可以在 Linux 上访问和使用 ASP.NET Core 应用程序了。 以上就是 ASP.NET Core 部署到 Linux 的过程。部署过程较为繁琐,但是使用 .NET Core 能够极大的提高跨平台开发的效率以及跨平台应用的可移植性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo_Wish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值