如何使用Nginx在Debian上为.NET Core WebApp启用完全正常的HTTPS?

时间:2018-11-05 18:02:46

标签: c# nginx asp.net-core .net-core debian

我想通过HTTPS加密到我的Web应用程序的流量,但在Debian上却遇到了麻烦

Microsoft网站上当然有指南:https://docs.microsoft.com/en-US/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.1&tabs=visual-studio

但是...不仅仅是重定向吗?

This document shows how to:

Require HTTPS for all requests.
Redirect all HTTP requests to HTT

如何创建这些.pfx文件或将HTTP添加到Web应用程序所需的其他任何内容?

1 个答案:

答案 0 :(得分:1)

我建议使用nginx作为Web应用程序的反向代理。在这种情况下,您无需修改​​应用代码,就可以修改HTTPS设置,而无需在网络应用中进行任何修改。步骤:

1)设置您的网站,例如它将使用端口5000

2)安装nginx并创建像这样的基本配置:

worker_processes 4;

events { worker_connections 1024; }

http {
    sendfile on;

    upstream app_servers {
        server web:5000;
    }

    server {
        server_name your_server_name_here.com;
        listen 80;

        location / {
            proxy_pass         http://app_servers;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
    }
}

详细了解配置here

3)使用letsencrypt通过certbot获得免费的HTTPS证书。它将使用证书进行所有工作,并会自动修改您的nginx配置

我也建议使用Docker-它可以帮助您更好地分离代码和代理。