如何从 Angular 前端向使用自签名证书保护的服务器发送 HTTPS 请求?

How to send an HTTPS request from an Angular front-end to a server secured with a self signed certificate?

我无法从前端 Angular 应用程序中看出我的请求有什么问题。

我之前从同一浏览器发送了 https://thalasoft.com:8443/api/ 请求并确认我同意自签名证书。

但是当从 https://stephaneeybert.github.io/stephaneeybert/ng-zero/login 发送请求 https://thalasoft.com:8443/api/auth/login 的前端应用程序尝试时,浏览器调试控制台显示 Status Code: 504 Gateway Timeout (from ServiceWorker)

我必须补充一点,这个 Angular 前端应用程序和 API 服务器的完全相同的登录在从我的 localhost 开发计算机提供服务时工作正常。仅当 Angular 前端由 GitPages 提供,API 服务器由我的远程服务器提供时,才会出现此问题。

您遇到的问题没有最终解决方案,但我想在这里向您说明一下您遇到的问题。

您想从已验证的 SSL 站点向未验证的 SSL 站点发出 HTTP 调用。这意味着以下内容:仅允许在同源服务器上进行 HTTP 调用,这意味着从经过验证(可信)的 SSL 站点到经过验证(可信)的 SSL 站点或从非 SSL 到非 SSL。

在您的情况下,自签名证书是一个(不受信任的)证书,它不允许来自有效证书的连接,因为它不在服务器上的受信任存储区中。

所以有两个解决方案:

  1. 将自签名证书添加到运行 angular 应用程序的服务器上的受信任存储区。 (但在你的情况下,你不能这样做,因为你无法访问 gitpages 受信任的商店。

  2. 使用有效证书。例如来自 LetsEncrypt.

对于这种情况,atm 没有其他解决方案。我试图找到解决方法,但由于我在上面已经描述的“同源”政策,没有解决方案。