你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 開發 證書--根證書/申請證書/開發(發布)證書--詳解

iOS 開發 證書--根證書/申請證書/開發(發布)證書--詳解

編輯:IOS開發綜合

1.根證書: Apple Worldwide Developer Relations Certification Authority

iOS 以及 Mac OS X 系統(在安裝 Xcode 時)將自動安裝 AppleWWDRCA.cer 這個中間證書(Intermediate Certificates),它實際上就是 iOS(開發)證書的證書,即根證書(Apple Root Certificate)。

AppleWWDRCA(Apple Root CA)類似注冊管理戶籍的公安機關戶政管理機構,AppleWWDRCA.cer 之於 iOS(開發)證書則好比戶籍證之於身份證。

無論是開發證書還是生產證書,都必須從根證書上派生。根證書就是根mac產生的證書,menber center上保存的那個證書就是根證書,它只能安裝在創建它的那台mac上,其他的開發mac必須從那台根mac上導出證書使用。也就是所有的子證書都只能從根證書派生而來。
這裡寫圖片描述

2.申請證書(CSR:Certificate Signing Request)

可以在缺少證書時通過 Xcode Fix Issue 自動請求證書,但是這會掩蓋其中的具體流程細節。這裡通過 Keychain 證書助理從證書頒發機構請求證書:填寫開發賬號郵件和常用名稱,勾選【存儲到磁盤】。
這裡寫圖片描述

Keychain Access(鑰匙串訪問)/Keys(密鑰) 中將新增一對非對稱密鑰對 Public/Private Key Pair(公鑰和私鑰)。同時,keychain(鑰匙串) 將生成一個包含開發者身份信息和公鑰的CSR(Certificate Signing Request)文件——CertificateSigningRequest.certSigningRequest。
這裡寫圖片描述

私鑰 private key 始終保存在 Mac OS 的 Keychain Access 中,用於簽名(CodeSign)本機對外發布的 App;公鑰 public key 一般隨證書(隨Provisioning Profile,隨App)散布出去,對 App 簽名進行校驗認證。用戶必須妥善保存本地 Keychain 中的 private key,以防偽冒。

在 Apple 開發網站上傳包含公鑰的 CSR 文件作為換取證書的憑證(Upload CSR file to generate your certificate)
這裡寫圖片描述

Apple 證書頒發機構 WWDRCA(Apple WZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5KSC9q8q508PG5CBwcml2YXRlIGtleSC21CBDU1Ig1tC1xCBwdWJsaWMga2V5ILrN0rvQqcntt93Qxc+ivfjQ0LzTw9zHqcP7yfqzycr919bWpMrpo6hpb3NfZGV2ZWxvcG1lbnQuY2Vyo6myorzHwrzU2rC4o6hBcHBsZSBNZW1iZXIgQ2VudGVyo6k8YnIgLz4NCjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20161103/201611030939391524.png" title="\" />

從 Apple Member Center 網站下載證書到 Mac 上雙擊即可安裝(當然也可在 Xcode 中添加開發賬號自動同步證書和[生成]配置文件)。證書安裝成功後,在 KeychainAccess"Keys 中展開創建 CSR 時生成的 Key Pair 中的私鑰前面的箭頭,可以查看到包含其對應公鑰的證書(Your requested certificate will be the public half of the key pair.);在 Keychain Access|Certificates 中展開安裝的證書(ios_development.cer)前面的箭頭,可以看到其對應的私鑰。
這裡寫圖片描述

Certificate 應被配置到【Xcode Target"Build Settings|Code Signing|Code Signing Identity】下,下拉選擇 Identities from Profile “…”(一般先配置 Provisioning Profile)。以下是 Xcode 配置示例:
這裡寫圖片描述

3.開發/發布證書

iOS 證書是用來證明 iOS App 內容(bundle with executable and resources)的合法性和完整性的數字證書。對於想安裝到真機或發布到 AppStore 的應用程序(App),只有經過簽名驗證(Signature Validated)才能確保來源可信,並且保證 App 內容是完整、未經篡改的。

它的作用就是證明你的mac具有開發或發布某個開發者賬號下應用的權限。而且證書還分成兩種,一種是開發證書,也叫Development certificate; 另一種是發布證書或叫生產證書,英文名叫Production certificate。

development certificate:開發證書是證明你的mac具有開發和真機調試你的程序的東西。但是每個證書關聯著一個開發者賬號,也就是說,你只能使用這個證書開發這個賬號底下的應用,它是通過bundle id來知道該應用是不是屬於自己的賬號。所以,每次為一個開發者帳號開發應用,就得需要這個賬號創建的開發證書。

Production certificate:生產證書是證明你的mac是否具有發布應用的權限。在archive到appstore的時候,必須有生產證書,否則時上傳不成功的。

1. 眾所周知,我們申請一個Certificate之前,需要先申請一個Certificate Signing Request (CSR) 文件,

2. 這個過程中實際上是生成了一對公鑰和私鑰,保存在你Mac的Keychain中。代碼簽名正是使用這種基於非對稱秘鑰的加密方式,用私鑰進行簽名,用公鑰進行驗證。

3. 在你Mac的keychain的login中存儲著相關的公鑰和私鑰,而證書中包含了公鑰。你只能用私鑰來進行簽名,所以如果沒有了私鑰,就意味著你不能進行簽名了,所以就無法使用這個證書了,此時你只能revoke之前的證書再申請一個。

4. 因此在申請完證書時,最好導出並保存好你的私鑰。當你想與其他人或其他設備共享證書時,把私鑰傳給它就可以了。私鑰保存在你的Mac中,而蘋果生成的Certificate中包含了公鑰。當你用自己的私鑰對代碼簽名後,蘋果就可以用證書中的公鑰來進行驗證,確保是你對代碼進行了簽名,而不是別人冒充你,同時也確保代碼的完整性等。

這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved