kunci pribadi tidak ada dalam sertifikat distribusi pada gantungan kunci

171

Saya memiliki masalah berikut ini yang tidak dapat saya temukan solusinya di mana saja. Pada dasarnya, kami memiliki akun pengembang perusahaan (bukan perusahaan) dan jadi untuk mengirimkan aplikasi kami, saya meminta dari pimpinan tim kami untuk mengirimi saya sertifikat distribusi dan membuat dan mengirim saya profil penyedia distribusi.

Dengan profil pengembang, semuanya berfungsi dengan baik, tetapi ketika saya menginstal sertifikat dan profil penyediaan, saya tidak melihat profil distribusi pada Xcode, dan saya juga tidak memiliki kunci pribadi di bawah sertifikat di gantungan kunci.

Apakah ada yang tahu bagaimana mengatasi ini? Saya membaca di berbagai tempat bahwa saya perlu mencabut sertifikat dan membuat yang baru, tetapi saya tidak dapat melakukannya karena kami memiliki banyak aplikasi di perusahaan dan saya tidak dapat mencabutnya untuk semua orang.

moshikafya
sumber
2
Terkadang kunci Privat tidak ada karena kami mencoba membuat Sertifikat dengan .CSR yang dibuat di mesin lain. Jadi, pastikan, file CSR Anda juga harus dibuat di mesin yang sama di mana Anda mencoba membuat dan menginstal sertifikat..atau Anda bisa menggunakan .p12 sertifikat untuk menghindari masalah ini
MAhipal Singh
2
Dalam kasus saya, saya memiliki dua sertifikat penandatanganan yang identik di gantungan kunci saya ... Itu diselesaikan hanya dengan menghapus salah satu dari mereka ... Untuk berjaga-jaga ...
juanram0n

Jawaban:

168

masukkan deskripsi gambar di siniAhh ini masalah umum, solusinya sederhana:

Siapa yang pernah membuat kredensial pengembang awalnya harus membuka gantungan kunci di komputer mereka dan mengklik kanan pada kunci untuk pribadi dan publik dan mengekspor kunci ke file. Kemudian Anda cukup mengunduh file itu di komputer Anda dan membukanya, dan itu akan ditambahkan ke gantungan kunci Anda.

Anda harus memiliki kunci pribadi (file .pem) dan sertifikat untuk profil penyediaan Anda.

Nirma
sumber
36
Untuk lebih spesifiknya adalah file .p12 yang Anda butuhkan (diekspor)
mkral
7
@Nirma Apa yang harus dilakukan jika kami tidak memiliki akses ke komputer tempat asal kredensial pengembang tersebut dibuat.
Nishad Arora
@NishadArora Anda harus membuat kunci baru untuk digunakan. Tidak ada cara untuk menggunakannya tanpa kunci pribadi. AFAIK
Joshua Pinter
2
@Nirma Cara membuat yang baru
Muju
Jika itu membantu siapa pun, setelah menginstal sertifikat publik dan kunci pribadi (diperiksa di Akses Keychain dan ditunjukkan) Saya juga harus memulai ulang Xcode untuk mendapatkannya mengambil kunci pribadi. Menggunakan Xcode 11.6 pada OSX 10.15.5.
NHol
70

Selama Anda masih memiliki akses ke mac yang digunakan untuk menghasilkan sertifikat distribusi asli, itu sangat sederhana.

Cukup gunakan aplikasi Keychain Access mac itu untuk mengekspor sertifikat dan kunci pribadi. Pilih keduanya menggunakan shift atau perintah dan klik kanan untuk mengekspor ke file .p12.

Melampirkan tangkapan layar untuk membuatnya sangat jelas.

Di mac Anda, impor file .p12 itu dan Anda siap (pastikan Anda memiliki profil penyediaan yang valid).

Pilih saja ekspor

Eladleb
sumber
55

Untuk menambahkan jawaban orang lain, jika Anda tidak lagi memiliki akses ke kunci pribadi itu, cukup mudah untuk membuat dan menjalankan kembali:

  1. cabut sertifikat aktif Anda di portal penyediaan
  2. buat sertifikat pengembang baru (akses gantungan kunci / .../ permintaan csr ... dll.)
  3. unduh dan pasang sertifikat baru
  4. buat profil penyediaan baru untuk id aplikasi yang ada (di portal penyediaan)
  5. unduh dan pasang profil penyediaan baru dan di build, pengaturan mengatur identitas penandatanganan kode yang sesuai
mkral
sumber
13
Di sini, di perusahaan saya selalu berantakan, tidak ada yang tahu di mana komputer dibuat sertifikat tertentu. Hanya lebih baik untuk mencabut dan membuat ulang
user2387149
1
@ user2387149 Saya di sini 6 tahun kemudian untuk menyarankan CI / CD untuk melakukan hal-hal semacam ini dan lupakan tentang distribusi melalui xCode.
Edgar Salazar
jika saya sudah mengunduh sertifikat distribusi, maka saya mencabutnya lalu meminta lagi. haruskah saya menghapus sertifikat distribusi lama?
kafinsalim
14

Hapus yang ada dari KeyChain, dapatkan dan tambahkan file .p12 ke mac Anda dari mana sertifikat itu dibuat.

Untuk mendapatkan .p12 dari sumber Mac, buka KeyChain, perluas sertifikat, pilih keduanya dan ekspor 2 item. Ini akan menyimpan file .p12 di lokasi Anda:

masukkan deskripsi gambar di sini

Jamshed Alam
sumber
8

Dalam kasus saya, saya telah kehilangan semua kunci pribadi di gantungan kunci saya, yang baru diimpor dengan benar, tetapi juga tidak menunjukkan kunci pribadi. Satu-satunya hal yang membantu adalah menghasilkan CertificateSigningRequest baru

JakubKnejzlik
sumber
6

Setelah Anda mengubah Mac yang bukan asal yang membuat sertifikat disitribusi, Anda akan kehilangan kunci privat. Cukup hapus sertifikat asal dan buat ulang yang baru, yang berfungsi untuk saya ~

Michael Yang
sumber
5

Ketika saya mencoba mengunggah build iOS untuk menguji penerbangan maka kesalahan muncul.

"Missing privacy key".

masukkan deskripsi gambar di sini

Hanya 2 langkah untuk memperbaiki kesalahan ini.

  1. Hapus sertifikat lama dari developer.apple.com
  2. Buat sertifikat baru dari Xcode atau developer.apple.com

Masalah saya telah terpecahkan (Saya menggunakan Xcode 9.4.1).

Silakan periksa, Xcode membuat sertifikat baru.

masukkan deskripsi gambar di sini

Vivek
sumber
5

Untuk orang yang takut membuat kembali sertifikat distribusi AppStore, dokumentasi Apple mengatakan:

Penting: Menciptakan kembali sertifikat pengembangan atau distribusi Anda tidak memengaruhi aplikasi yang telah Anda kirim ke App Store juga tidak memengaruhi kemampuan Anda untuk memperbaruinya.

Tetapi itu mempengaruhi aplikasi untuk ekosistem Apple Developer Enterprise .

Ramis
sumber
4
itu terjadi jika Anda memiliki akun perusahaan!
MobileMon
Dengan "sistem ekosistem perusahaan" .... Sebagai contoh. apakah Anda berbicara jika Anda bekerja di perusahaan besar dan 100 pengembang memiliki kunci pribadi untuk aplikasi spesifik itu?
petrosmm
2

Pada Menu> Visual Studio (mac)> Preferensi> Penerbitan> Akun Pengembang Apple> [Pilih id apel Anda]> Lihat Detail> Buat Sertifikat

Untuk menghapus sertifikat yang tidak digunakan / tidak valid, buka situs web: https://developer.apple.com/account/resources/certificates/list

hapus sertifikat yang tidak diinginkan di sana

Berikutnya adalah membuat ID Aplikasi (pengidentifikasi), buka situs web:
https://developer.apple.com/account/resources/identifiers/list

Selanjutnya, buka situs web untuk membuat profil penyediaan:
https://developer.apple.com/account/resources/profiles/add

gunakan sertifikat untuk mengikat dengan id aplikasi Anda.

Berikutnya adalah mengunduh profil:
Di mac Anda> Di Menu> Visual Studio (mac)> Preferensi> Penerbitan> Akun Pengembang Apple> [Pilih id apel Anda]> Lihat Detail> Unduh Semua Profil

mjb
sumber
1

Saya mengakses sertifikat itu di situs web pengembang apple dan setelah mengunduhnya saya membukanya. Demikian juga, saat terbuka saya mendapat jendela kecil yang menanyakan apakah saya ingin menambahkan sertifikat ke gantungan kunci. Hanya mengetuk "tambah" dan kesalahan "kunci pribadi hilang" hilang.

ISS
sumber
1

Saya masuk ke situasi ini ("Kunci pribadi hilang.") Setelah Xcode gagal membuat sertifikat distribusi baru - terjadi kesalahan yang tidak diketahui.

Kemudian, saya berjuang untuk mendapatkan kunci pribadi atau menghasilkan sertifikat baru. Dari manajer sertifikat di Xcode saya mendapat kesalahan aneh seperti "Frasa sandi yang Anda masukkan salah". Tetapi bahkan tidak meminta saya untuk passphrase.

Yang membantu saya adalah:

  1. Cabut semua sertifikat distribusi yang tidak berfungsi di developer.apple.com
  2. Mulai ulang Mac saya

Setelah itu, Xcode dapat membuat sertifikat distribusi baru dan tidak ada kunci pribadi yang hilang.

Hal yang dipelajari: Nyalakan ulang Mac Anda sebanyak Anda Windows;)

Štěpán Havránek
sumber
0

Periksa apakah Anda menggunakan Login atau tidak untuk menambahkan sertifikat, jika Anda memeriksa Sistem di sisi kiri atas maka kami tidak akan dapat melihatnya.

Jadi seret dan letakkan .cer ke dalam login lalu periksa apakah Anda bisa mendapatkan kunci privat atau tidak.

Priyanka
sumber
0

Hanya untuk menjelaskan hal ini.

Setelah saya menghapus sertifikat p12 dari Keychain. Saya mengunduh ulang sertifikat saya sendiri dari portal pengembang Apple.

Saya hanya dapat mengunduh sertifikat. Tetapi untuk menandatangani Anda perlu kunci pribadi juga. Jadi kamu juga:

  • ekspor kunci pribadi dan sertifikat dari Gantungan Kunci untuk mendapatkannya.

  • Unggah Permintaan Penandatanganan Sertifikat dan hasilkan sertifikat baru

Sertifikat itu sendiri tidak memiliki nilai untuk tujuan penandatanganan. Dugaan saya adalah bahwa kunci pribadi dibuat oleh gantungan kunci saat Anda 'meminta sertifikat dari otoritas sertifikat' tetapi tidak ditampilkan kepada Anda sampai Anda menambahkan sertifikat yang mengikat.

Madu
sumber