2013-06-30 18 views
9

Fondamentalmente la nostra app iOS deve comunicare con un server che ha un certificato autofirmato per ora. Nella mia app, l'https non ha un certificato server non affidabile che è comprensibile. L'errore è simile a questo:Come utilizzare un certificato autofirmato nell'app per iOS

errore di dominio = Codice NSURLErrorDomain = -1202 "Il certificato per questo server non è valido Si potrebbe essere la connessione a un server che finge di essere.‘Il mio nome host’che potrebbe mettere le tue informazioni riservate a rischio. "

Così ho inviato il certificato autofirmato via e-mail al dispositivo iOS e importato nei profili sperando che fosse usato come parte della CA radice per l'autenticazione https. Con mia sorpresa, non lo è e sto ancora ricevendo lo stesso errore. Penso che iOS sia l'impostazione predefinita per utilizzare le CA radice sul portachiavi per convalidare il certificato del server e da quello che ho letto, anche il certificato importato ai profili è al portachiavi. Quindi non ho potuto capire perché il mio certificato autofirmato importato non viene utilizzato come CA principale.

A questo punto, non voglio davvero fidarsi di questo certificato auto firmato tramite la codifica come questo iOS authenticate HTTPS with self-signed certificate o In iOS, how to connect to a server using https with self-signed certificate on the server? dal momento che questo non funziona nel caso dei clienti dove sarebbero installare il nostro server sulla loro rete e potrebbero creare il proprio certificato autofirmato.

In qualche modo non ho ottenuto molte informazioni su questo dalla ricerca. Qualcuno potrebbe far luce qui e cosa devo fare per eseguire il debug di questo? Grazie mille.

aggiornamento il 15 luglio:

altri Aggiorna intorno a questo. Ho anche provato a utilizzare il profilo di configurazione per aggiungere una CA autofirmata alla CA principale sul dispositivo iOS seguendo Adding Trusted Root Certificate Authorities to iOS, dai miei test su 6.0 iPad e iPhone, non funziona altrettanto bene. Quindi non sono sicuro se questo funziona solo su dispositivo jail o no. Alla fine, finisco per consentire all'utente di importare un certificato autofirmato nell'app. L'app caricherà tale certificato importato per la verifica del certificato simile a questo In iOS, how to connect to a server using https with self-signed certificate on the server?. Spero che aiuti gli altri in questo caso.

+0

Ho avuto lo stesso problema nel mio caso "Nome comune" del certificato non è uguale al nome di dominio dell'URL per il quale sto facendo https .... fissando il nome comune risolto –

risposta

2

guardando il primo tutorial che hai collegato a te dovresti essere in grado di usarlo o qualcosa di più avanzato e una volta verificato e averlo funzionante, tutto quello che devi fare per un cliente è creare e aggiungere il proprio il certificato dovrebbe sostituire/sostituire il file localhost.cer nella cartella App in cui si trova il file localhost.cer "o qualsiasi altro schema di nomi che si utilizza". ci sono molti modi per farlo, ma si potrebbe dire all'app un link in cui il certificato è online per il download e una volta scaricato, quindi sostituire.

Tutte le domande cercherò di aiutare ulteriormente ma spero che questo ti aiuti nella giusta direzione.

+0

grazie. tenere a mente, il certificato autofirmato è generato dal cliente, tuttavia l'app ha bisogno di un noto URL per scaricare il certificato. Quindi significherebbe che il cliente dovrebbe darci quel certificato per pubblicare in quel sito ben noto. Penso che sia sicuramente un approccio per risolvere questo problema, tuttavia non è un approccio semplice per la distribuzione aziendale. – windfly2006

+0

Oggi, quando guardo la guida alla configurazione di Symantec MDM (http://www.symantec.com/connect/sites/default/files/SMM%207.1%20Best%20Practices%20Guide%20vs2.pdf), si menziona anche " 6.5 Creazione del carico utile di credenziali per la CA principale "sull'importazione di cert nell'archivio di certificati radice di iOS. Quindi significa che deve funzionare anche se non funziona per me. Non sono sicuro che funzioni su iOS 5, ma non funziona su iOS 6 o no. – windfly2006

+0

ha dato alla tua domanda un voto in rialzo, si spera che qualcuno possa guardare anche a questo. – rezand

Problemi correlati