如何在Ionic 3的iOS中实现SSL密钥固定?

如何在Ionic 3的iOS中实现SSL密钥固定?,ios,ionic3,ssl-certificate,public-key-pinning,Ios,Ionic3,Ssl Certificate,Public Key Pinning,我对iOS课程没有太多的知识。我正在构建一个需要SSL固定的iOS应用程序(Ionic 3)。谷歌的大多数例子都基于swift。我可以知道这些步骤吗?或者有人可以提供一些有关iOS SSL固定的链接吗 PS:我的服务器中已经有一个证书。此外,我还为Android进行了SSL固定和网络安全配置。裁判。工作正常 提前感谢。Ionic 5.4.15版本解决方案 要在ionic中启用SSL固定,请在根文件夹中创建一个目录,例如“certificates”,并将所有证书放在此文件夹中。 重要提示:此文件夹

我对iOS课程没有太多的知识。我正在构建一个需要SSL固定的iOS应用程序(Ionic 3)。谷歌的大多数例子都基于swift。我可以知道这些步骤吗?或者有人可以提供一些有关iOS SSL固定的链接吗

PS:我的服务器中已经有一个证书。此外,我还为Android进行了SSL固定和网络安全配置。裁判。工作正常


提前感谢。

Ionic 5.4.15版本解决方案

要在ionic中启用SSL固定,请在根文件夹中创建一个目录,例如“certificates”,并将所有证书放在此文件夹中。 重要提示:此文件夹中的所有证书必须具有后缀.cer

然后在根项目目录中修改angular.json 将此部分附加到“资产”数组的所有发生项

然后删除根项目中的www目录并运行“ionic build”, 它将在您的www文件夹中生成新的子目录“certificates”

在Typescript中使用证书:

我正在使用ionic原生http和cordova高级http插件

安装:

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

在根目录xyz.module.ts文件中导入:

import { HTTP } from '@ionic-native/http/ngx';

将其附加到提供程序:

 providers: [
    StatusBar,
    SplashScreen,
    **HTTP**,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
导入页面/组件中的xyz.ts文件:

import { HTTP } from '@ionic-native/http/ngx';

在构造函数中声明:

constructor(private http: HTTP) {}

在提出任何请求之前锁定证书:

  async ngOnInit() {
    await this.platform.ready();
    this.advHttp.setServerTrustMode('pinned').then((res: any) => {
    }, (error) => {
      this.helpers.showError(error);
    });
    this.advHttp.setRequestTimeout(5);
  }
现在您已经准备好了,可以使用https请求了! 文件:

您解决了问题吗?没有。。!对不起(我仍然讨厌iOS。可能cordova plugin advanced http会按照他们的官方文件工作,但我的ionic 3项目是用@angular/http开发的。所以我需要改变所有的事情。可能我被夹在了两者之间。
  async ngOnInit() {
    await this.platform.ready();
    this.advHttp.setServerTrustMode('pinned').then((res: any) => {
    }, (error) => {
      this.helpers.showError(error);
    });
    this.advHttp.setRequestTimeout(5);
  }