簡體   English   中英

如何為 iOS 分發創建 P12 證書

[英]How to create P12 certificate for iOS distribution

我們有一個 iOS 應用,其推送通知證書已過期,我們正在嘗試創建一個新應用。 我在 Provisioning 門戶(ios_developer.cer、ios_distribution.cer)中創建了新證書並下載了它們。 我正在按照Stack Overflow上的說明將其轉換為 PEM,然后轉換為 P12 文件,但我被卡住了。 然后當我嘗試將 PEM 轉換為 P12 時,它需要某種私鑰,但我不知道從哪里獲取它。

我也嘗試將這些加載到 Keychain Access 中。 我讀過您可以從那里將它們導出為 P12,但是當我執行導入時,它們不會出現在任何地方。

當您在 Keychain Access 中創建簽名請求時會生成您的私鑰。 生成並下載證書后,雙擊它會將其添加到 Keychain Access 中,在那里它將與私鑰匹配。 然后,您可以選擇證書,並打開箭頭以同時選擇私鑰並將它們一起作為 .p12 文件從 Keychain Access 導出。

.p12 文件用於在 Apple App Store 上發布應用程序

A. 在 Mac 上創建 (.certSigningRequest) CSR 文件

  1. 從實用程序打開鑰匙串訪問
  2. 從 Keychain Access 工具欄選擇Keychain Access -> Preference
  3. 在彈出窗口中選擇證書選項卡
  4. “在線證書狀態協議”和“證書吊銷列表”都設置為“關閉”
  5. 關閉此窗口
  6. 現在從工具欄,打開鑰匙串訪問>證書助手>從證書頒發機構請求證書
  7. 輸入您在 iOS 開發者計划中注冊時使用的電子郵件地址和常用名稱
  8. 將 CA 電子郵件留空並選擇“保存到磁盤”和“讓我指定密鑰對信息”
  9. 點擊繼續
  10. 選擇硬盤上的文件名和目的地
  11. 點擊保存
  12. 在下一個窗口中,將“密鑰大小”值設置為“2048 位”
  13. “算法”設置為“RSA”
  14. 點擊繼續

這將創建您的 certSigningRequest 文件 (CSR) 並將其保存到您的硬盤驅動器。 還將在 Keychain Access 中使用輸入的通用名稱創建公鑰和私鑰。

B. 在 iOS 開發者賬戶中創建“.cer”文件

  1. 登錄蘋果開發者賬號點擊“Certificates, Identifiers & Profiles”
  2. 點擊“配置文件”
  3. 在“證書”部分點擊“生產”
  4. 單擊主面板右上角的“添加”(+) 按鈕
  5. 現在,選擇“App Store 和 Ad Hoc”
  6. 點擊繼續
  7. 單擊“選擇文件”並找到您從硬盤驅動器制作的 CSR 文件
  8. 點擊生成
  9. 點擊下載獲取文件

C.安裝.cer並生成.p12證書

  1. 找到您下載的 .cer 文件並雙擊
  2. 將登錄下拉列表設置為“登錄”並單擊添加
  3. 打開 KeyChain Access,您將找到在步驟 A 中創建的配置文件
  4. 您可以展開“私鑰”配置文件(顯示您添加的證書)
  5. 只選擇這兩項(不是公鑰)
  6. 右鍵單擊並從彈出窗口中單擊“導出 2 個項目...”
  7. 現在確保文件格式為“.p12”並選擇硬盤驅動器上的文件名和目的地
  8. 單擊保存。 現在,系統會提示您設置密碼,但將它們都保留為空白
  9. 單擊確定。 現在,您的硬盤驅動器上有一個 .p12 文件

請注意,如果問題仍然存在,請嘗試以下步驟:

如果您的鑰匙串存在於 iCloud 中,則從 iCloud 中刪除所有鑰匙串內容並在 iCloud 中進行新設置這應該可以工作。

除非您通過從鑰匙鏈左下角選擇 (Certificates) 進行過濾,否則您將不會獲得擴展選項

好的,問題解決了! 似乎當我雙擊證書時,它會自動將其安裝在 SYSTEM 鑰匙串中 - 我不知道為什么。 因此,我只是將證書拖放到 LOGIN 鑰匙串中,然后一切都很好。 感謝這篇文章 -> 將證書添加到鑰匙串並生成 .p12 文件格式- alon rosenfeld 10 個月前

要讓你的 p12 文件走這條路..

步驟 1.XCode > 轉到項目設置>常規>簽名部分 >簽名證書

查看您為此特定應用程序使用的證書,如下圖所示

在此處輸入圖片說明

第 2 步。打開鑰匙串> 在左下角類別部分 >證書

通過單擊向下箭頭查找證書並打開子項,如圖所示

在此處輸入圖片說明

第 3 步。右鍵單擊並通過提供您的密碼導出為“Certificates.p12”,例如。 “123456”

對於其他有灰色/灰色 P12 選項的人:

確保您在鑰匙串訪問中的我的證書或證書類別中。

https://sailthru.zendesk.com/hc/en-us/articles/115000032546-Can-t-export-my-certificate-in-p12-format

對於仍然存在此問題的任何人,我的解決方案是不要同時選擇和“導出 2 個項目”(密鑰和證書)——而只是導出已經包含密鑰的證書。 截至 2016 年,我認為這是這樣做的方法,因為以前與導出 2 項一起使用的上傳不再有效。

我最終來到這里,因為我試圖在沒有 Mac 的情況下使用MS Visual Studio App Center在雲中構建一個 iOS 應用程序。 問題是每個教程都使用 Jayprakash Dubey 上面評價最高的答案。 該方法使用 Mac 和 KeyChain。 解決方案來自 SO here

您需要一個密鑰 (aps_development.key),然后:

  1. 創建密鑰對:openssl genrsa -out aps_development.key 2048
  2. 創建CSR:openssl req -new -sha256 -key aps_development.key -out aps_development.csr
  3. 將 CSR 上傳到開發者門戶以獲取證書 aps_development.cer
  4. 轉換證書:openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem
  5. 構建 PKCS#12:openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

然后,您可以繼續創建應用程序 ID 和配置文件。 這將允許您在 App Center 中進行構建。

對於其他有灰色/灰色 P12 選項的人,

這是我的 macbook pro 的最新截圖(2021 年)。

鑰匙串訪問 v11.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM