【发布时间】:2022-10-06 17:44:09
【问题描述】:
我的 aspnetcore API 和 Linux 环境遇到了一些问题。
我在 docker 容器中为每个项目部署了一个 Angular 项目和 5 个 .net 项目(API 和 Worker 服务),全部由 docker-compose 编排。
我有最后一个 Nginx 容器,并且我成功地使用 \"Letsencrypt\"(docker 映像)认证了我的域,这适用于我的 Angular 项目。
但是,当我尝试从客户端向 aspnetcore API(自签名证书)发出请求时,这根本不起作用。
ISSUE => net::ERR_CERT_AUTHORITY_INVALID
所以,我阅读了很多很多关于这个问题的主题和文章,我发现了最后一篇文章:https://letsencrypt.org/docs/certificates-for-localhost/,解释说,我们不能认证“localhost”,所以我们应该声明我们的自签名证书每个浏览器。
所以我的问题是:我可以为所有想要访问我的网站的每个用户都做一次吗?
可能是aspnetcore 和linux 绝对不兼容(尤其是对于SSL)。
我能做些什么?我现在有点失落了……
-
你可以发布你的nginx配置吗? (请澄清一下,您只提供来自 nginx 的角度静态文件,或者 api 也通过代理?)
-
嗨@C1sc0。谢谢你的回复。是的,我只提供角度静态文件。我的 Angular 项目中有一个 environmentApiUrls 文件,存储所有 url。当我发出请求时,我调用这些 url 并将它们传递给 httpClient。
-
在我尝试在 https 上传递我的网站之前,在 http 上一切正常。但是现在,我的客户端在 https 上,我遇到了一个问题(混合内容:页面是通过 HTTPS 加载的,但请求了一个不安全的 XMLHttpRequest 端点。此请求已被阻止;内容必须通过 HTTPS 提供。),如果我正在尝试请求一个 http 端点。所以我也尝试为我所有的 aspnecore API 获得证书,而且我做得很好。但这是一个自签名证书 => 不起作用。我应该将所有 API 的容器添加到 Ngninx 吗?我现在真的不知道如何处理这个问题..
-
您也必须通过 nginx 代理与您的 API 的连接,它将处理 TLS 内容,并且在本地连接中,它只是 http(作为上游)并不重要。
标签: angular docker debian lets-encrypt aspnetcore-environment