nativescript-community / https

Secure HTTP client with SSL pinning for Nativescript - iOS/Android
https://nativescript-community.github.io/https/
Other
50 stars 42 forks source link

iOS app crash on AFNetworking Base url NULL #34

Closed smartsanja2013 closed 3 weeks ago

smartsanja2013 commented 6 years ago

I have to enable ssl pining in my app. I have follow the implementation steps correctly. But when I make the https request, iOS app crash in AFNetworking EXC_BAD_Access error

screen shot 2018-08-22 at 10 41 06 am

Android app gives this error

JS: nativescript-https > Disabled SSL pinning by default
JS: nativescript-https > enableSSLPinning error ReferenceError: okhttp3 is not defined
JS: Https.request error ReferenceError: okhttp3 is not defined

Certs folder

screen shot 2018-08-22 at 10 57 00 am

reference.d.ts

/// <reference path="./node_modules/tns-core-modules/tns-core-modules.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" />

imports

import { File, Folder, knownFolders, path } from 'file-system'
import * as Https from 'nativescript-https'

in the constructor

let dir = knownFolders.currentApp().getFolder('certs')
let certificate = dir.getFile('httpbin.org.cer').path
Https.enableSSLPinning({ host: 'httpbin.org', certificate: certificate});

method

clickLogin(){
        //this.UserService.loginP();
        Https.request({
            url: 'https://httpbin.org/get',
            method: 'GET',
            headers: {
                'content-type': 'application/json'
,
            },
        }).then(function(response) {
            console.log('Https.request response', response)
        }).catch(function(error) {
            console.error('Https.request error', error)
        })
}

Please help me to identify whats is the issue here.

tns version 4.0.1 node v6.11.5

smartsanja2013 commented 6 years ago

I have remove https plugin and add again. Also remove both platforms and add again. After that, android is working now. But ios still has same issue. I have added two NSLogs to AFHTTPSSessionManager class. 9cbcf0136b2127bd999bd54c917462a55e4bbe36_1_690x251 Output

Securitypolicy AFSSLPinningModePublicKey
baseURL scheme (null)

It seems something wrong with setting the certificate and host in the angular code. By right, Securitypolicy should be AFSSLPinningModeCertificate and baseURL schme should have https.

Any idea?