Debian / docker / aspnet core : SSL



我在aspnetcore API和Linux的环境中遇到了一些问题。

我有一个Angular项目和5.net项目(API和Worker服务(部署在一个docker容器中,所有这些项目都由一个docker-composite处理。

我有最后一个Nginx容器,我成功地用";Letsencrypt";(docker图片(,这是我的棱角分明的项目。

但当我尝试从客户端向aspnetcore API(自签名证书(进行请求时,这根本不起作用。

ISSUE=>net::ERR_CERT_AUTHORITY_INVALID

所以,我读了很多关于这个问题的话题和文章,我发现了最后一篇文章:https://letsencrypt.org/docs/certificates-for-localhost/,这就解释了,我们不能认证"localhost",所以我们应该在每个浏览器中声明我们的自签名证书。

所以我的问题是:我能一劳永逸,让每个用户都想访问我的网站吗?

可能是aspnetcore和linux绝对不兼容(尤其是SSL(。

我能做什么?我现在有点迷路了。。。

通过nginx代理所有traffix,并将API设置为上游。

示例nginx-config(将您已经工作的TLS配置添加到其中(:

worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream web-api {
server mydotnetapi:80;
}
server {
listen 80;
server_name example.com;
location /symbiosisapi/ {
proxy_pass         http://web-api/;
proxy_redirect     off;
proxy_cache_bypass $http_upgrade;
proxy_set_header   Upgrade $http_upgrade;
proxy_set_header   Connection keep-alive;
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-Proto $scheme;
proxy_set_header   X-Forwarded-Host $server_name;
}


location / {
autoindex on;
root  /home/www-data/mysite;
} 
}
}

如果有人点击/位置,它将接收静态内容,如果有人命中/api位置,请求将转发到您的dotnet api。nginx将处理所有TLS。将mydotnetapi更改为您在撰写文件中设置的容器名称。

相关内容

  • 没有找到相关文章

最新更新