Dans mon application, j'utilise https et un certificat SSL auto-signé pour sécuriser la connexion entre mon client et le serveur.
J'ai essayé de faire en sorte que la bibliothèque AFNetworking fasse un Pinning SSL sur une copie de mon certificat inclus dans l'application.
Dans le AFURLConnectionOperation
tête, j'ai défini les deux :
#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ =1
#define _AFNETWORKING_PIN_SSL_CERTIFICATES_ =1
Et avant d'appeler le start
sur mon AFJSONRequestOperation
J'ai mis le SSLPinningMode
à la propriété AFSSLPinningModeCertificate
.
Mais lorsque j'essaie d'effectuer une requête JSON, je continue à obtenir l'erreur suivante :
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed.
(NSURLErrorDomain error -1012.)" UserInfo=0x758f120
{NSErrorFailingURLKey=https://mydomain.com,
NSErrorFailingURLStringKey=https://mydomain.com}
Dans le AFURLConnectionOperation
En-tête J'ai lu que l'épinglage SSL fonctionne avec les certificats .cer mais dans mon serveur Web OS X auto-hébergé, j'ai un certificat .crt.
Est-ce là le problème ? Existe-t-il un moyen de faire fonctionner AFNetworking avec .crt ?
Sur une machine Windows, j'ai converti mon fichier .crt en .cer et j'ai essayé de l'intégrer à mon application, mais j'obtiens toujours la même erreur. Dois-je essayer de remplacer le fichier .crt par le nouveau fichier .cer, même du côté du serveur ?