2016-12-26 2 views
-1

Nous développons une application utilisant IBM MobileFirst Platform Foundation v7.1. Actuellement nous sommes en phase UAT. L'application prend en charge Android et iOS.L'épinglage du certificat échoue dans iOS

Nous avons implémenté l'épinglage des certificats pour notre application. Le serveur MobileFirst est géré par l'équipe réseau, qui m'a fourni un certificat public avec l'extension "cer" (com.uat.myapp.cer). J'ai inclus ce certificat public dans mon projet sous le dossier du certificat et j'ai écrit le code d'épinglage du certificat dans le fichier main.js.

L'application Android fonctionne correctement et SSL Handshake avec MobileFirst Server est en cours. L'application fonctionne correctement.

L'application iOS mais ne parvient pas à se connecter au serveur MobileFirst avec l'erreur suivante:

An SSL error has occurred and a secure connection to the server cannot be made".

I converti le certificat .cer .Der certificat (com.uat.myapp.der) en utilisant le Portail suivant: https://www.sslshopper.com/ssl-converter.html et placé dans l'application, mais j'ai quand même fini avec la même erreur.

S'il vous plaît trouver les journaux d'erreur ci-dessous pour plus d'informations:

-[WLAFHTTPRequestOperationManagerWrapper requestFailed:error:] in WLAFHTTPRequestOperationManagerWrapper.m:390 :: Response Error : An SSL error has occurred and a secure connection to the server cannot be made. 2016-12-26 19:38:49.301 MyApp[1419:26347] [DEBUG] [WORKLIGHT] 
+[WLClient sharedInstance] in WLClient.m:165 :: IBMMobilieFirstFoundation.framework version = 7.1-2016/05/28 17:08:17 

-[WLRequest requestFailed:error:] in WLRequest.m:509 :: Status code='0' error='An SSL error has occurred and a secure connection to the server cannot be made.' response='(null)' 

2016-12-26 19:38:49.302 MyApp[1419:26347] [DEBUG] [WL_REQUEST] 
-[WLRequest requestFailed:error:] in WLRequest.m:512 :: Response Header: (null) Response Data: (null) 

2016-12-26 19:38:49.302 MyApp[1419:26347] [DEBUG] [WL_AUTH] 
-[WLAuthorizationManager failRegistratioWithResponse:] in WLAuthorizationManager.m:866 :: Response does not contain a valid certificate and client Id. device registration failed 

2016-12-26 19:38:49.306 MyApp[1419:26347] [DEBUG] [CERTIFICATE_MANAGER] +[WLCertManager removeKey:] in WLCertManager.m:262 :: Key was successfully removed. 
+0

Veuillez vous assurer que vous suivez les instructions dans la documentation pour le serveur et le client: https://mobilefirstplatform.ibmcloud.com/blog/2015/08/14/certificate-pinning-in-ibm-mobilefirst -platform-foundation-7-1/- vérifie également la validité du certificat, en particulier cet hôte spécifié et le serveur correspond vraiment. –

+1

Tout d'abord, essayez sans épingler le certificat. Signification Connectez votre application iOS à votre serveur SSL SANS utiliser l'API pinning. Mettez à jour votre question pour nous faire savoir si ce flux régulier fonctionne. –

+0

@karthik_Chinna, s'il vous plaît vérifier les commentaires ci-dessus et répondre. –

Répondre

0

Mon intuition est que le domaine spécifié dans le certificat ne correspond pas à l'hôte du serveur réel ou IP utilisé par l'application.

  1. L'outil keytool vérifie que le certificat contient effectivement les valeurs hôte/ip requises.
  2. Dans votre application, assurez-vous que l'application tente effectivement de se connecter au même serveur hôte/IP.