【问题标题】:How to send an HTTPS request from an Angular front-end to a server secured with a self signed certificate?如何将 HTTPS 请求从 Angular 前端发送到使用自签名证书保护的服务器?
【发布时间】:2019-01-25 19:11:43
【问题描述】:

我看不到前端 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)

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

【问题讨论】:

    标签: angular https self-signed-certificate


    【解决方案1】:

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

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

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

    所以有两种解决方案:

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

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

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

    【讨论】:

    • 我应该考虑到这一点。我会尝试获取 LetsEncrypt 证书。
    猜你喜欢
    • 2019-12-25
    • 2020-03-22
    • 1970-01-01
    • 2020-06-26
    • 2016-05-14
    • 2013-11-09
    • 2019-07-26
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多