2013-03-01 83 views
2

我有一個私有應用程序,它將與Web服務進行通信並使用客戶端證書身份驗證。iOS - 將證書添加到應用程序

需要爲每個用戶使用不同的證書,所以我無法將其添加到應用程序資源。 我用ipad模擬器測試了應用程序,並且使用了位於我的電腦上的證書並且它工作正常。

如何在沒有任何證書的情況下安裝應用程序,然後在iPad上安裝應用程序後添加證書並在我的應用程序中讀取此證書?

我曾想過要爲每個客戶發送帶有證書的電子郵件,但客戶如何添加證書以及如何在我的應用程序中讀取證書?

+0

爲什麼不是否以編程方式將證書下載到例如應用程序的庫目錄? – 2013-03-01 16:23:35

+0

我會爲此推薦一些類似Aquatic Prime的產品,特別是對於獨特的證書。 – CodaFi 2013-03-01 16:46:02

+0

@CodaFi - 我不知道Aquatic Prime。謝謝。但客戶要求我使用他提供的證書。我現在只需要弄清楚如何將證書發送到iPad並添加它,以便我可以在我的應用程序中閱讀它。 – Freedom 2013-03-01 16:55:06

回答

1

你只需將證書中的服務器文件夾,並調用URL中的代碼,如下所示:

NSURL *url = [NSURL URLWithString:@"http://www.yoururl.com/cert.pem"]; 
[[UIApplication sharedApplication] openURL:url]; 

有了這個代碼,應用程序識別出它是一個證書,並詢問用戶安裝它(這真的很簡單!)。

編輯

當我的設備沒有安裝證書,我的URL請求不工作,我感到我用這種方法對待它的錯誤:

+ (void)treatConnectionErrors:(NSError *)error withAlert:(BOOL)withAlert 
{ 
    if (error) 
    { 
     /* If it's a certificate error, shows alert with link to install certificate */ 
     if ([error code] == -1202) 
     { 
      // do something, such as show alertview warning about the certificate 
     } else { 
      // treat other errors if you want to 
     } 
    } 
} 
+0

如果證書將被打開(在服務器上),則每個人都可以下載並使用它進行客戶端驗證 – 2013-03-01 17:31:24

+0

使用加密技術,傳遞一些帖子參數或類似內容來檢查哪個用戶正在使用該應用程序以及將要下載什麼證書 – CainaSouza 2013-03-01 17:33:40

+0

@CainaSouza將證書存儲在服務器上是一個選項。但我想知道是否可以通過發送電子郵件。 – Freedom 2013-03-01 18:55:28

相關問題