3

I have my server certificates expired.

I want to bypass or turn off certs verification from my swift iOS app so i can test app features.

I need this just for testing, not for production of live app. so none concerned for security.

How can i achieve this in Swift iOS.

I am using Alamofire library for network requests.

How to achieve this.

Sajid Zeb
  • 1,806
  • 18
  • 32

3 Answers3

2

Put the below cod into info.plist file.

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
sanjeev
  • 150
  • 3
0

Try something like:

import Foundation
import Alamofire

class NetworkManager {

    static let shared = NetworkManager()

    var unsecure: SessionManager!
    var serverTrustPolicies: [String: ServerTrustPolicy] = ["unsecureSslHostname":.disableEvaluation]

    private init () {
        self.unsecure = { () -> SessionManager in
            let configuration = URLSessionConfiguration.default
            configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders
            return SessionManager(
                configuration: configuration,
                serverTrustPolicyManager: ServerTrustPolicyManager(policies: self.serverTrustPolicies)
            )
        }()
    }
}

After that NetworkManager.shared.unsecure will return Alamofire SessionManager which can be used for send request to hosts with unsecured SSL certificates.

Serhii Didanov
  • 2,200
  • 1
  • 16
  • 31
0

use this for your session configuration:

let serverTrustPolicies: [String: ServerTrustPolicy] = ["untrustedServer.com": .disableEvaluation]
let servertrustManager = ServerTrustPolicyManager(policies: serverTrustPolicies)
sessionManager = SessionManager(configuration: configuration,serverTrustPolicyManager: servertrustManager)
abed
  • 71
  • 7