In my app I'm using https and a self-signed SSL certificate to secure the connection between my client and the server.
I was trying to have the AFNetworking library do SSL Pinning on a copy of my certificate bundled in the app.
In the AFURLConnectionOperation
header I defined both:
#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ =1
#define _AFNETWORKING_PIN_SSL_CERTIFICATES_ =1
And before calling the start
on my AFJSONRequestOperation
I set the SSLPinningMode
property to AFSSLPinningModeCertificate
.
But when trying to perform a JSON request I keep getting the following error:
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed.
(NSURLErrorDomain error -1012.)" UserInfo=0x758f120
{NSErrorFailingURLKey=https://mydomain.com,
NSErrorFailingURLStringKey=https://mydomain.com}
In the AFURLConnectionOperation
header I read that the SSL Pinning works with .cer certificates but in my self-hosted OS X webserver I have a .crt certificate.
Is this the problem? Is there a way to make AFNetworking work with .crt?
On a windows box I converted my .crt to .cer and tried to bundle that into my app but I still get the same error. Should I try to switch the .crt file with the newly created .cer even on the server side?