iOS 开发中的各种证书
公鑰和私鑰
轉載自:http://www.samirchen.com/ios-certificates/
先簡單的介紹一下公鑰和私鑰。我們常見的加密算法有兩類:對稱加密算法(Symmetric Cryptographic Algorithm) 和 非對稱加密算法(asymmetric cryptographic algorithm)。
對于對稱加密算法,一般只有一個秘鑰。通過這個秘鑰對一份數據進行加密,那么有這個秘鑰的人才可以用它解密這份數據。
對于非對稱加密算法,一般有兩個秘鑰:公鑰和私鑰。比如你通過私鑰對一份數據進行加密,那么收到這份加密過的數據的人,可以通過這個私鑰對應的公鑰對數據進行解密。這時他可以確認,這個數據是從你那來的(至少是你加密的)。這個私鑰就相當于一個“簽名”(你加的密,就是你簽的字)。而這個就是iOS中Code Signing背后的原理。
Certificates
Intermediate Certificate
這個證書叫做?Worldwide Developer Relations Certificate Authority,通過這個鏈接可以下載:https://developer.apple.com/certificationauthority/AppleWWDRCA.cer,一般下載下來的文件名為:AppleWWDRCA.cer。
為了確保你能使用其他的 iOS 開發或者發布證書,你需要下載這個證書并雙擊打開,它會被存儲在你電腦上的?Keychain Access?中。這個證書可以認為是類似于根證書的東西,用來確定你的 iOS 開發或發布的各種證書是與蘋果的開發者關聯的,而不是在別的什么地方生成的。通常情況下,這個證書是由 Xcode 自動安裝的。
iOS App Certificates
這里的證書一般都是?.cer?類型,分為?Development?和?Distribution?用途。一般在 Xcode 中制作即可:
當然,也可以手動制作。在蘋果的 Certificates, Identifier & Profiles 網站上按照提示一步一步來:
To manually generate a Certificate, you need a Certificate Signing Request (CSR) file from your Mac. To create a CSR file, follow the instructions below to create one using Keychain Access. Create a CSR file. In the Applications folder on your Mac, open the Utilities folder and launch Keychain Access.
Within the Keychain Access drop down menu, select Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
- In the Certificate Information window, enter the following information:
- In the User Email Address field, enter your email address.
- In the Common Name field, create a name for your private key (e.g., John Doe Dev Key).
- The CA Email Address field should be left empty.
- In the “Request is” group, select the “Saved to disk” option.
- Click Continue within Keychain Access to complete the CSR generating process.
大致步驟就是在自己的電腦上用?Keychain Access?生成一個?Certificate Signing Request文件,這會在本地創建一對 公鑰/私鑰,按提示步驟上傳文件,蘋果接收這個文件后會驗證信息,然后給你創建一個認證文件供你下載,這個文件就是?.cer?格式的。這時候你雙擊這個.cer?文件,那么就可以在?Keychain Access?中打開,在?Certificates?選項欄中可以看到它是有私鑰的,同時在?Keys?選項欄中可以看到對應的 私鑰 和 公鑰。
但是如果你刪除掉 私鑰 和 公鑰,然后再雙擊那個?.cer?文件,就會發現此時在?Keychain Access?中打開,在?Certificates?選項欄中的這個證書沒有私鑰了。在其他的電腦上下載這個.cer?文件也是同樣的道理,都會沒有對應的私鑰,那是不能使用的。那怎么辦呢?可以把私鑰證書導出來傳到別的電腦上雙擊打開即可,私鑰證書一般是?.p12?格式的。
APNs Certificates
這里的證書一般也是?.cer?類型的,要制作的話,按照蘋果 Certificates, Identifier & Profiles 網站上的提示一步一步來做,跟上一節是一樣的。
對于Certificates這塊,需要注意的就是私鑰證書(.p12)一定要保存好,這樣當你換電腦開發或者多人開發的時候,只需要重新下載一下?.cer?文件,然后再雙擊導入一下?.p12?即可。
Identifiers
App ID
不多講了,就是一個 App 對應一個 ID,通常是 com.company-name.app-name 的命名方式。
Devices
在這里添加測試設備的 UDID。
Provisioning Profiles
把前面的東西合起來:
- Certificates (開發者認證)
- App ID
- Device UDID
就是?Provisioning Profile。
Provisioning Profile?會通過 Xcode 或者 iTunes 導入到設備中,或者打包到一個的?.ipa安裝包文件中。
更多內容可以參考:?證書相關文檔
總結
以上是生活随笔為你收集整理的iOS 开发中的各种证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自学java 第十章内部类(二)
- 下一篇: 计算字符在字符串中出现的次数