对自签名 uri 的 Angular https 调用失败,并显示“net::ERR_CERT_AUTHORITY_INVALID”

问题描述 投票:0回答:2

我正在使用 Angular http 模块来调用由自签名证书启用的 https 端点。

代码类似于下面所示:

    export class AppComponent {
  constructor(private  http: HttpClient) {
 }
  title = 'my-app';
    ngOnInit(): void {
        this.http.get('https://internalapp.com/context/apps/all').subscribe((res: any[]) => {
    console.log('sharief');
    console.log(res);
    });
  }
}

当 Angular 应用程序在 Chrome 浏览器中运行时,会导致错误“net::ERR_CERT_AUTHORITY_INVALID”。此错误发生在 this.http.get(...) 方法调用上。

Node 的 https 模块有一个如下所示的选项,它似乎可以工作(来自 在此处输入链接描述

var req = https.request({ 
      host: '192.168.1.1', 
      port: 443,
      path: '/',
      method: 'GET',
      rejectUnauthorized: false,
      requestCert: true,
      agent: false
    },

问题:是否可以在 http.get 调用期间禁用证书验证?

angular https self-signed
2个回答
21
投票

不,这是浏览器的限制。

您可以将后端url放入您的浏览器中,告诉您的浏览器授权此调用,然后就可以了。


0
投票

我一开始并没有完全理解上面的答案。为了让遇到这个问题的人清楚地了解,我想向您展示我是如何解决这个问题的。

我的 Angular 应用程序正在调用 API。浏览器不信任 API 的证书。

解决方案:

  • 将 URL 从 API 复制到浏览器(@Deblaton Jean-Phillipe 在他的回答中说的)

  • 单击 URL 旁边的“不安全”(1),然后单击“您与此站点的连接不安全”(2)

  • 在下面的弹出窗口中单击证书图标

  • 这将向您显示证书。您可以在那里单击详细信息。在弹出窗口的底部,您可以将其导出。这样做并将其保存在您可以再次找到的地方。

  • 在证书存储“受信任的根证书颁发机构”中安装证书

之后我的角度应用程序再次工作。

© www.soinside.com 2019 - 2024. All rights reserved.