I am using 'Alamofire', '~> 5.4' for request & response. I need to add SSL certificate pinning. But it shows bellow error..
failure(Alamofire.AFError.sessionDeinitialized)
Here is my Code :
static func callingAp(){
let cirfitcate = pinnedCertificates()
let evaluators: [String: ServerTrustEvaluating] = [
"mydomain.com": PinnedCertificatesTrustEvaluator(certificates: cirfitcate),
]
let serverTrustManager = ServerTrustManager(evaluators: evaluators)
let session = Session(serverTrustManager: serverTrustManager)
let parameters: [String: Any] = [:]
let headers: HTTPHeaders = [:]
session.request("myapi", method: .post, parameters:parameters,headers: headers).responseJSON { response in
if let data = response.data {
do{
// let loginResponse = try JSONDecoder().decode(LoginResponseModel.self, from: data)
}catch let err{
print("err 01 -->",err.localizedDescription)
}
}else{
print("err 02-->",response)
}
}
}
static func pinnedCertificates() -> [SecCertificate] {
var certificates: [SecCertificate] = []
if let pinnedCertificateURL = Bundle.main.url(forResource: "digicert_high_assurance_ev_root_ca", withExtension: "cer") {
do {
let pinnedCertificateData: CFData = try Data(contentsOf: pinnedCertificateURL) as CFData
if let pinnedCertificate: SecCertificate = SecCertificateCreateWithData(nil, pinnedCertificateData) {
certificates.append(pinnedCertificate)
}
} catch {
print("certicate exception--")
}
}
return certificates
}
Without certificate pinning, it is working fine. What is wrong with my code? Please help me...