Angular 如何将HTTPS请求从前端发送到具有自签名证书保护的服务器?

Angular 如何将HTTPS请求从前端发送到具有自签名证书保护的服务器?,angular,https,self-signed-certificate,Angular,Https,Self Signed Certificate,我看不出前端Angular应用程序的请求有什么问题 我之前发送了https://thalasoft.com:8443/api/来自同一浏览器的请求,并确认我已批准自签名证书 但是在https://stephaneeybert.github.io/stephaneeybert/ng-zero/login哪个发送请求https://thalasoft.com:8443/api/auth/login浏览器调试控制台显示状态代码:504网关超时(来自ServiceWorker) 我必须补充一点,当从我的

我看不出前端Angular应用程序的请求有什么问题

我之前发送了
https://thalasoft.com:8443/api/
来自同一浏览器的请求,并确认我已批准自签名证书

但是在
https://stephaneeybert.github.io/stephaneeybert/ng-zero/login
哪个发送请求
https://thalasoft.com:8443/api/auth/login
浏览器调试控制台显示
状态代码:504网关超时(来自ServiceWorker)


我必须补充一点,当从我的
localhost
dev计算机提供这两种服务时,这个角度相同的前端应用程序和API服务器登录可以正常工作。只有当角度前端由GitPages提供服务,而API服务器由我的远程服务器提供服务时,才会出现此问题。

您面临的问题没有最终解决方案,但我想向您解释一下您在这里面临的问题

您希望从已验证的SSL站点向未验证的SSL站点进行HTTP调用。这意味着:HTTP调用只允许在相同的源服务器上进行,这意味着从验证(受信任)SSL站点到验证(受信任)SSL站点或从非SSL到非SSL

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

因此有两种解决方案:

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

  • 使用有效的证书。例如,来自LetsEncrypt的证书


  • 对于这种情况,没有其他解决方案。我试图找到一个解决办法,但没有解决办法,因为我已经在上面描述了“同源”政策。

    您面临的问题没有最终解决方案,但我想向您解释您在这里面临的问题

    您希望从已验证的SSL站点到未验证的SSL站点进行HTTP调用。这意味着:HTTP调用仅允许在同一源服务器上进行,即从已验证(受信任)的SSL站点到已验证(受信任)的SSL站点或从非SSL到非SSL

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

    因此有两种解决方案:

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

  • 使用有效的证书。例如,来自LetsEncrypt的证书


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

    我应该考虑一下。那时我会尝试获得LetsEncrypt证书。我应该考虑一下。那时我会尝试获得LetsEncrypt证书。