我遇到了一些奇怪的事情。我有一个运行 Linux 的 Web 服务器。它有一个 NodeJs expressjs 应用程序,还有一个 Nginx 服务器管理其证书并将从我的 Angular 前端收到的流量反向代理到 http url,即我的 Nodejs API。
当我运行我的应用程序时,服务器被 Chrome 识别,我可以加载该网站,但是当我尝试从前端(登录)发出请求并且它通过 Nginx 到达 api 时,它会返回 Err 不安全响应。
这是我的 Nginx 设置的片段。
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/angular;
ssl_certificate "/etc/nginx/certs/cert.cer";
ssl_certificate_key "/etc/nginx/certs/cert.key";;
ssl_prefer_server_ciphers on;
#API for Reverse proxy to ExpressJS
#Login
location /auth
{
proxy_pass http://127.0.0.1:8000/auth;
}
当我直接从 chrome 中的 url 调用 API 获取函数时,它实际上会返回响应。
我是否必须在我的应用程序中添加一些标题或必须向反向代理设置中添加一些内容?
在我实施 HTTPS 之前,它运行正常。但证书有效且按预期运行。知道是什么原因造成的吗?
谢谢
答案1
所以我明白了,我使用应用程序中的 IP 调用了 API,但是证书安装在 DNS 上,因此您必须使用 DNS 名称。