Tidak dapat mengimpor keyfile 'blah.pfx' - error 'The keyfile mungkin dilindungi kata sandi'

392

Kami baru saja meningkatkan proyek Visual Studio 2008 ke Visual Studio 2010. Semua majelis kami ditandatangani dengan kuat menggunakan sertifikat penandatanganan kode Verisign . Sejak peningkatan, kami terus mendapatkan kesalahan berikut:

Tidak dapat mengimpor file kunci berikut: companyname.pfx. File kunci mungkin dilindungi kata sandi. Untuk memperbaikinya, coba impor sertifikat lagi atau instal sertifikat secara manual ke Strong Name CSP dengan nama wadah kunci berikut: VS_KEY_3E185446540E7F7A

Ini terjadi pada beberapa mesin pengembang dan bukan yang lain. Beberapa metode yang digunakan untuk memperbaiki ini yang berfungsi beberapa waktu termasuk:

  • Instal ulang file kunci dari Windows Explorer (klik kanan pada file PFX dan klik Instal)
  • Menginstal Visual Studio 2010 pada mesin baru untuk pertama kalinya meminta Anda untuk kata sandi saat pertama kali Anda membuka proyek, dan kemudian berhasil. Pada mesin yang ditingkatkan dari Visual Studio 2008, Anda tidak mendapatkan opsi ini.

Saya sudah mencoba menggunakan utilitas SN.EXE (Strong Name Tool) untuk mendaftarkan kunci dengan Strong Name CSP seperti pesan kesalahan yang disarankan, tetapi setiap kali saya menjalankan alat dengan opsi apa pun menggunakan versi yang datang dengan Visual Studio 2010, SN .EXE hanya mencantumkan argumen baris perintahnya alih-alih melakukan apa pun. Ini terjadi terlepas dari argumen apa yang saya berikan.

Mengapa ini terjadi, dan langkah apa yang jelas untuk memperbaikinya? Saya akan menyerah pada pemasangan ClickOnce dan penandatanganan kode Microsoft.

JasonD
sumber

Jawaban:

448

Saya juga mengalami masalah ini. Saya dapat menyelesaikan masalah dengan menjalankan
sn -i <KeyFile> <ContainerName>( menginstal pasangan kunci ke wadah bernama ).

snbiasanya diinstal sebagai bagian dari SDK Windows. Sebagai contoh C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe. Kemungkinan besar lokasi ini tidak berada di jalur pencarian untuk lingkungan standar Anda. Namun, "Command Command Prompt" yang diinstal oleh Visual Studio menambahkan informasi tambahan yang biasanya menyertakan lokasi yang benar.

Berdasarkan posting Anda yang akan terlihat seperti

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

Ini harus dijalankan dari lokasi file PFX Anda, jika Anda memiliki solusi dimuat di VS 2010 Anda cukup klik kanan pada file pfx dari explorer solusi dan pilih Prompt Perintah Terbuka yang akan meluncurkan alat prompt .net 2010 cmd prompt di direktori yang benar.

Sebelum menjalankan perintah sn ini, saya menginstal ulang pfx dengan mengklik kanan dan memilih instal yang tidak bekerja. Hanya sesuatu yang perlu diperhatikan karena mungkin kombinasi keduanya yang memberikan solusi.

Semoga ini bisa membantu menyelesaikan masalah Anda.

Brandon Manchester
sumber
5
Terima kasih Brandon - ya ini, seperti menginstal ulang secara manual file kunci "semacam" memecahkan masalah. Masalahnya adalah segera setelah Anda memeriksa file kunci, setiap pengguna lain yang mendapatkan informasi terbaru tentang file kunci ini sekarang akan mengalami bug ini. Jika ada pengguna yang memeriksa "perbaikan" mereka dan saya mendapatkan yang terbaru, maka mesin saya sekarang rusak lagi ... dan seterusnya. Microsoft telah memulai tiket masalah ini dan menugaskannya ke tim VS2010 dan tim VSS.
JasonD
2
Menarik. Saya tidak mengalami masalah saat menambahkan pfx ke CSP baru. Setahu saya SN -i tidak mengubah file pfx sehingga Anda tidak perlu memeriksa apa pun setelahnya. Namun jika Anda ingin mengubah file pfx seperti mengatur ulang kata sandi, itu akan menyebabkan masalah karena itu akan mengubah file pfx. Apakah solusi Anda dibuat dengan file pfx dari mesin lain? Jika demikian maka file pfx sudah benar tidak diatur ke CSP yang benar pada mesin Anda yang mengalami masalah build.
Brandon Manchester
3
Pada awalnya saya mencoba hanya bagian sn-i tetapi mengeluh bahwa kata sandi itu salah (meskipun itu benar). Saya menghapus sertifikat, memasangnya kembali dan kemudian ... saya ... bekerja. Pada dasarnya mengkonfirmasi itu untuk saya, kedua langkah diperlukan. Pasang kembali cert lalu jalankan perintah sn.
Dodgyrabbit
1
Saya telah menemukan di VSS dan TFS bahwa jika Anda menjalankan perintah sn -i, itu tidak berfungsi kecuali jika Anda memeriksa file PFX, dan ketika Anda memeriksanya, itu tidak bekerja untuk pengembang lain di jaringan. Saya harus mencoba menginstal ulang cert kemudian jalankan perintah sn -i. Kami membutuhkannya untuk bekerja pada semua mesin pengembang di kantor.
JasonD
5
Ini juga bekerja untuk saya, tetapi saya tidak pernah melakukan ini di masa lalu. VS dulu hanya muncul dan meminta kata sandi untuk setiap kunci. Apa yang berubah?
Kevin Berridge
126

Saya telah menemukan perbaikan yang membantu Anda dapat membangun dengan sukses di lingkungan multi pengembang:

Alih-alih mengubah password (yang menyebabkan .pfx yang akan diubah), memilih ulang file .pfx dari combobox. Ini kemudian memanggil dialog kata sandi. Setelah memasukkan kata sandi, proyek akan membangun OK. Setiap dev dapat melakukan ini pada mesin lokalnya tanpa benar-benar memodifikasi file .pfx.

Saya masih mengalami masalah saat membuat rakitan ditandatangani di mesin server build kami. Saya mendapatkan kesalahan yang sama di sana, namun menggunakan metode sn.exe -i tidak memperbaiki masalah untuk buildserver.

Kotak ajaib
sumber
5
Menghabiskan waktu gagal untuk mendapatkan ini bekerja di TFS build server kami juga, menyadari saya login sebagai diri saya sendiri, bukan sebagai akun layanan build, tidak heran ia tidak dapat menemukannya - doh!
Daniel Morritt
7
Ini harus ditandai sebagai jawaban karena jawaban yang saat ini ditandai tidak akan berfungsi di lingkungan multi-pengembang. Sudah selesai dilakukan dengan baik.
Daniel McQuiston
Jika Anda menggunakan file .pfx yang sama untuk menandatangani banyak majelis / proyek dalam satu solusi, Anda hanya perlu melakukan langkah ini pada satu proyek dan itu akan berlaku untuk semuanya. Bagus sekali.
Jon Comtois
1
Masalah saya adalah server build berjalan di bawah akun lokal. Saya masuk ke opsi dan berubah, tetapi tidak menyadari bahwa saya mengubahnya di tempat yang salah - yang menyebabkan saya memecahkan masalah selama berjam-jam sampai saya memeriksanya lagi dan menyadari kesalahan saya!
The Muffin Man
3
Terima kasih brilian. Sedih melihat ini masih merupakan solusi di 2017.
Billy Jake O'Connor
43

Saya memiliki masalah yang sama dan menghapus toko dan membaca tidak berhasil. Saya harus melakukan yang berikut.

  • Dapatkan salinan OpenSSL . Ini tersedia untuk Windows . Atau gunakan kotak Linux karena mereka semua memiliki semuanya.

  • Jalankan yang berikut ini untuk mengekspor ke file kunci:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    

Kemudian di properti proyek Anda dapat menggunakan file PFX.

Terdampar
sumber
1
Terima kasih!! Saya pikir ini bekerja untuk saya. Saya meraih openssl di sini: gnuwin32.sourceforge.net/packages/openssl.htm
aherrick
Saya ingin menambahkan opsi untuk menyertakan sertifikat yang sebenarnya di pfx: openssl pkcs12 -ekspor -sertifikat.pfx -inkey privateKey.key -dalam sertifikat.crt -certfile CACert.crt -keysig -keyex
Pete
Pastikan untuk menjalankan openssl sebagai administrator, kalau tidak Anda akan mendapatkan kesalahan "tidak dapat menulis 'keadaan acak'" Juga: Saya masih harus melakukan jawaban Brandon Manchester dengan hal "sn-i ..." setelah melakukan openssl benda.
Lee Richardson
Ini adalah satu-satunya solusi, yang akhirnya berhasil bagi saya. Terima kasih!
Ladislav
37

Saya berbicara terlalu cepat! Rebuild mengembalikan kesalahan ...

Saya menemukan ini berfungsi - klik kanan di Solution Explorer dan kecualikan dari proyek. Klik Tampilkan semua file , klik kanan dan sekarang sertakan lagi dalam proyek. Sekarang batalkan perubahan yang tertunda ...

Untuk beberapa alasan ini diselesaikan untuk saya dan relatif tidak menyakitkan!

Mike F
sumber
Mengembalikannya, tidak membantu. Tidak menyadarinya menghapus pfx dari pengaturan proyek. Saya pikir jawabannya terletak pada jawaban dari Stefan stackoverflow.com/a/14644793/1735721
DennisWelu
Jawaban ini bagus. Itu bekerja untuk saya, dan itu sangat mudah.
Ben Rubin
Bekerja untuk saya (VS2017 15.7.4). Terima kasih atas solusi yang bagus & cepat.
Rapat Peserta
Bekerja untuk saya di VS2019 16.1.3. Terima kasih!!
JordanTDN
35

Saya menemukan bahwa dalam beberapa kasus Anda harus mencoba untuk menghapus kunci ini sebelum Anda menginstalnya. Jadi lakukan hal berikut:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX
Dariusz
sumber
1
Ini memperbaikinya untukku! Instalasi dengan sendirinya gagal dengan objek yang sudah ada.
Andy
Saya mencobanya juga dan itu tidak membantu. Mungkinkah ada yang salah dengan sertifikat itu sendiri?
Tomáš Zato - Reinstate Monica
2
Terima kasih, penghapusan harus dilakukan sebagai admin - jika dijalankan seperti biasa, pengguna akan mendapatkan kesalahan yang menyesatkan "Wadah kunci nama kuat tidak ditemukan".
astrowalker
Terima kasih, ini berhasil untuk saya.
Rikin Patel
31

VSCommands 2010 (plugin untuk Visual Studio) dapat memperbaikinya untuk Anda secara otomatis - cukup klik kanan pada kesalahan dan klik Terapkan Perbaikan dari menu. Anda bisa mendapatkannya dari galeri Visual Studio .

Jarek Kardas
sumber
1
Saya percaya ini untuk versi pro - tidak memiliki opsi ini dalam versi lite saya
Adam Butler
2
Versi yang baru saya unduh (pada September 2011) datang dengan opsi ini.
Jim Hits
4
Itu masih membutuhkan lisensi pro.
John Baughman
27

Setelah mencoba semua solusi ini (dan banyak lagi), saya menemukan bahwa masalahnya ada di tempat lain. Bagi orang-orang yang mengalami kesengsaraan yang sama dengan saya setelah membeli sertifikat, saya akan membagikan solusi untuk masalah saya.

Tingkah laku

Saya mengerti bahwa 'tanda' menggunakan nama yang kuat dan bukan kode asli ke DLL atau EXE. Inilah mengapa signtool akan berfungsi dalam kasus ini, tetapi 'tanda' di Visual studio tidak akan berfungsi.

Alasan

Di masa lalu saya pernah memiliki pengalaman dengan sertifikat dari Verisign. Mereka punyaKeySpec=2 sertifikat - yang digunakan dengan fungsionalitas 'tanda' di Visual Studio. Sertifikat ini berfungsi dengan baik untuk Visual Studio dan signtool.

Saya sekarang membeli sertifikat dari Comodo, yang salah KeySpec=1 dalam sertifikat penandatanganan kode. Itu berarti sertifikat ini berfungsi baik dengan signtool (authenticode) tetapi tidak dengan penamaan yang kuat (drop-down sign).

Larutan

Ada dua cara untuk mengatasi masalah ini:

  1. Buat sertifikat terpisah untuk nama kuat Anda menggunakan sn -k [name].snk. Tandatangani perakitan menggunakan snk dan kemudian gunakan signtool dengan sertifikat penandatanganan kode Anda untuk menandatangani DLL / EXE dengan tanda tangan authenticode. Walaupun ini tampak aneh, dari apa yang saya pahami ini adalah cara yang benar untuk menangani sertifikat, karena nama yang kuat memiliki tujuan yang berbeda dari authenticode (lihat juga tautan ini untuk perincian tentang cara kerjanya).
  2. Impor sertifikat Anda sebagai KeySpec=2. Prosedur untuk ini dirinci di sini .

Karena saya ingin menggunakan beberapa nama yang kuat, saya saat ini menggunakan opsi (1), walaupun opsi (2) juga berfungsi.


Untuk memastikan solusi ini tidak akan pernah hilang di masa mendatang, inilah prosedur solusi 2:

  1. Menggunakan "Sertifikat" MMC, ekspor set kunci yang ada ( KeySpec=1) ke file PFX. Catatan: Harap cadangkan file ini ke lokasi yang aman dan uji apakah file tersebut dapat diimpor dengan benar di komputer lain jika Anda benar-benar ingin memainkannya dengan aman!
  2. Hapus sertifikat yang ada dari toko crypto (stlll menggunakan MMC).
  3. Buka prompt CMD.
  4. Impor file PFX menggunakan perintah ini:
    1. certutil -importPFX -user <pfxfilename> AT_SIGNATURE
    2. Masukkan frasa sandi untuk pfx saat diminta.

Anda sekarang harus memiliki set kunci / sertifikat dengan KeySpec=2. Jika perlu, Anda sekarang dapat mengekspor ini ke file PFX lain menggunakan MMC lagi.

atlaste
sumber
Solusi # 2 Anda adalah satu-satunya hal yang bekerja untuk saya (tanpa menggunakan alat atau proses baris perintah sekunder) Terima kasih.
Bron Davies
1
Ya, saya benar-benar tidak mengerti mengapa beberapa solusi di sini memiliki begitu banyak suara; ini adalah satu-satunya hal yang bekerja untuk saya, dan saya cukup yakin kebanyakan orang yang membeli sertifikat CS harus memiliki masalah yang sama. Oh well ...
atlaste
1
Ini adalah satu-satunya solusi yang berhasil untuk saya. Selain itu, file .pfx tidak dapat menyertakan informasi rangkaian sertifikat untuk menandatangani majelis.
Shih-Wen Su
Terima kasih untuk instruksi yang mendetail. Setiap langkah dijelaskan dengan tepat.
Dmitriy
1
Solusi pertama Anda sangat penting untuk dipahami di sini: sama sekali tidak perlu membuat rakitan bertanda tangan kuat dengan sertifikat yang dilindungi kata sandi yang mahal! Setelah Anda memahami hal ini, dan cukup menggunakan file snk, masalah ini sepenuhnya hilang. Lihat catatan peringatan di sini dan di sini .
Paul
11

Untuk mengatasi masalah ini di Visual Studio 2012, saya klik kanan proyek, properti -> "penandatanganan", dan kemudian hapus centang pada "Masuk manifes ClickOnce".

Romeo
sumber
2
Ini adalah jawaban yang sempurna jika tidak perlu penandatanganan. Ini akan menghapus kebutuhan proyek untuk ditandatangani.
Tom Anderson
8

Saya memilih ulang file Key (pfx) di kotak drop-down "Choose a Strong Name Key File", Kemudian berikan kata sandi di Jendela Popup "ENTER PASSWORD". Menyelamatkan proyek saya dan berhasil membangun kembali .build berhasil.

  • Buka Properti Proyek.
  • Klik pada bagian Penandatanganan.
  • Di mana dikatakan 'Pilih file kunci nama yang kuat:', pilih kembali nilai saat ini dari kotak drop-down:

masukkan deskripsi gambar di sini

  • Visual Studio sekarang akan meminta Anda untuk memasukkan kata sandi. Masukkan itu.

masukkan deskripsi gambar di sini

  • Simpan proyek Anda dan lakukan pembangunan kembali.

  • Jika menerima pesan kesalahan: "Suatu usaha dilakukan untuk merujuk token yang tidak ada" abaikan saja dan Lanjutkan langkah-langkah di bawah ini

  • Klik tombol 'Ubah Kata Sandi ”:

masukkan deskripsi gambar di sini

  • Masukkan kata sandi asli di ketiga kotak dan klik OK. Jika Anda ingin mengubah kata sandi Anda (atau jika kata sandi lama Anda tidak memenuhi persyaratan kompleksitas), Anda dapat melakukannya sekarang.

  • Simpan proyek Anda dan lakukan pembangunan kembali.

Info lebih lanjut..

Bala Kumar
sumber
3
Seluruh kesalahan ini sepertinya benar-benar acak untuk dipecahkan, tetapi solusi ini berhasil untuk saya. Jika ada orang lain yang sampai sejauh ini di halaman, saya hanya bisa menyarankan mencoba semuanya.
DeusExMachina25
6

Sebagai solusinya, saya mencoba menjalankan Visual Studio 2010 sebagai administrator, dan itu berhasil untuk saya.

Saya harap ini membantu.

pengguna350076
sumber
Karena suatu alasan berhenti bekerja. Saya tidak percaya ini benar-benar menyelesaikan masalah. Terima kasih!!!
Gerhard Powell
4

Sebagai penulis asli dari karya di sekitar pada laporan bug hubungkan, ada DUA varian dari pesan ini (saya telah menemukan nanti)

Untuk satu varian Anda menggunakan sn.exe (biasanya jika Anda melakukan penamaan yang kuat) untuk mengimpor kunci ke toko penamaan yang kuat.

Varian lain yang Anda gunakan untuk mengimpor certmgr adalah ketika Anda mendaftar kode untuk hal-hal seperti penyebaran klik-sekali (perhatikan Anda dapat menggunakan sertifikat yang sama untuk kedua tujuan).

Semoga ini membantu.

PeterI
sumber
Ya, kami sudah mencoba yang dengan dukungan Microsoft, dan itulah cara untuk melakukan impor penandatanganan kode. Masalahnya tampaknya kata sandi sertifikat hilang selama proses proses checkin aman. Tapi ini bukan masalah sebenarnya. Tampaknya jika Anda memasukkan detail sertifikat pada Widnows 7 mesin # 1, dan kemudian memindahkan file yang sama persis ke mesin yang berbeda dan mendaftarkannya, registrasi akan berfungsi, tetapi build akan gagal. Microsoft masih mencari kami. Untuk saat ini kami harus menonaktifkan penandatanganan kode dan masuk secara manual selama rilis.
JasonD
3

Tidak ada yang berhasil untuk saya, tetapi kemudian saya pergi dan melihat ke manajer sertifikat (mmc.exe). Sertifikat tidak diimpor di toko pribadi, jadi saya mengimpornya secara manual dan kemudian proyek dikompilasi.

Lihat ClickOnce Manifest Signing dan Signing Strong-Name Signing Menggunakan Halaman Penandatanganan Desainer Visual Studio Project, Signing Assemblies .

Samuel
sumber
Ini memecahkan masalah bagi saya juga setelah melakukan perbaikan SN.exe-i.
CodingSamurai
2

Memilih kembali file kunci dalam kotak kombo dan memasukkan kata sandi membantu kami.

Tetapi perlu dilakukan setiap kali file kunci berubah dan sepertinya tidak OK.

pengguna1113289
sumber
2

Saya memiliki masalah yang sama setelah memindahkan instalasi Windows saya ke SSD . Tidak ada solusi lain yang bekerja untuk saya.

Solusi saya adalah membuka file proyek di Notepad dan menghapus semua referensi kunci PFX. Setelah file disimpan, buka solusi di Visual Studio. Pergi ke project -> Properties -> Signing. Anda tidak akan melihat kunci apa pun yang tercantum dalam kotak kombo 'pilih file kunci nama yang kuat'. Di kotak kombo, telusuri kunci, pilih dan proyek Anda sekarang dapat dibangun.

Pembuat Goal
sumber
2

Masalah saya adalah bahwa TFS Build Controller berjalan sebagai layanan jaringan dan untuk beberapa alasan saya tidak mengerti mengapa sertifikat layanan Visual Studio Build Host tidak digunakan. Saya mengubah identitas layanan Visual Studio Build menjadi sesuatu yang lebih mudah dikelola, memastikan itu memiliki hak di server TFS, dan secara manual menambahkan sertifikat menggunakan MMC.

Masalahnya juga bahwa MSBuild tidak dapat menambahkan sertifikat yang dilindungi kata sandi ke toko.

Penjaga
sumber
Di toko mana Anda perlu menambahkannya ??
felickz
Saya melakukan hal yang sama (dan juga memberikan sertifikat pada pengguna ini Personal / Tepercaya Root / Tepercaya Pub. Tidak yakin mana yang memperbaikinya) dan dapat pindah ke kesalahan TFS berikutnya bahwa saya memiliki ruang kerja yang bertentangan, sehingga untuk memperbaiki bahwa saya juga punya untuk menghapus dan menambahkan agen build baru.
felickz
2

Saya memiliki masalah yang serupa, tetapi setelah memilih pfx dalam ComboBox "Mengetik nama kunci file" dan mengetik kata sandi, saya masih mengalami kesalahan yang sama (tanpa bagian nama wadah):

Tidak dapat mengimpor file kunci berikut: companyname.pfx. File kunci mungkin dilindungi kata sandi. Untuk memperbaikinya, coba impor sertifikat lagi atau instal sertifikat secara manual

Juga, panel informasi sertifikat "Tandatangani ClickOnce manifes" tidak diisi.

Saya melakukan "Pilih dari File ..." pada pfx saya, dan itu memecahkan masalah.

berselancar
sumber
1

Semua metode yang dijelaskan di sini tidak membantu saya. Tetapi ketika saya menghapus file * .pfx dari proyek saya dan menambahkannya ke penandatanganan majelis lagi, saya membangun proyek saya tanpa kesalahan! Saya tidak bisa menjelaskan alasannya. Tetapi itu berhasil bagi saya.

Peter Barbanyaga
sumber
1

Oke, ini berhasil untuk saya. Buka solusi / proyek lama sebagai administrator di Visual Studio 2010 dan buka solusi / proyek baru atau disalin. Sebagai administrator, hapus file pfk yang disalin dalam solusi / proyek Visual Studio 2010 yang baru dan buka properti proyek dan batalkan pilihan.

Dengan kedua proyek terbuka, salin tempel ke yang baru. Buka properti proyek dan pilih Bangun. Saya membuka dan menutup Visual Studio dan juga setelah menghapus dari proyek baru yang dibangun sebelum menyalinnya dari proyek lama dan memilihnya. Saya menerima kesalahan pada awal posting ini pertama kali ketika saya menyalin proyek dan mencoba membangunnya.

Jason Robertson
sumber
1

Dalam skenario saya, layanan build tidak menggunakan akun pengguna yang sama dengan yang saya impor menggunakan kunci sn.exe .

Setelah mengubah akun menjadi akun administrator saya, semuanya berfungsi dengan baik.

Mathias Lykkegaard Lorenzen
sumber
Saya mengalami masalah yang sama, membaca komentar Anda menunjukkan fakta bahwa saya telah memutakhirkan ke windows 10 dari windows 7 dan sekarang VS harus dijalankan sebagai Admin. Jadi jalankan VS sebagai admin dan tidak ada masalah .. Terima kasih atas penunjuknya
user1063108
1

Ini Memecahkan masalah saya: Buka Proyek VS Anda

Klik dua kali pada Package.appxmanifest

Buka tab Kemasan

klik pilih sertifikat

klik konfigurasikan sertifikat

pilih dari file dan gunakan example.pfx bahwa persatuan atau apa pun yang dibuat

Milad Xandi
sumber
0

Saya memecahkan masalah ini sendiri dengan mengubah baris berikut dalam file .csproj proyek Visual Studio proyek:

Ini melempar kesalahan 'tidak dapat mengimpor':

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

Mengubah nilai menjadi false membuat kesalahan hilang.

Kyle Julé
sumber
7
Biasanya majelis ditandatangani untuk tujuan tertentu, dan menghapus SignManifests akan menyebabkan masalah dalam penerapan di beberapa lingkungan. Jadi itu bukan solusi untuk masalah
Georgy Smirnov
0

Saya mendapat kesalahan yang sama. Dalam kasus saya, saya mencoba semua hal di atas, tetapi saya tidak bisa mendapatkan hasilnya.

Saya akhirnya menyadari bahwa dalam kasus saya, alasan kesalahannya adalah kata sandi sertifikat tidak dimasukkan atau dimasukkan secara salah. Kesalahan hilang ketika saya memasukkan kata sandi secara dinamis dengan benar. berhasil

Hamit YILDIRIM
sumber
0

Sayangnya, tidak ada pendekatan yang disebutkan di sini yang bekerja untuk saya. Saya harus mendaftarkan pasangan PFX dalam wadah buruh pelabuhan dan saya harus memasukkan kata sandi melalui baris perintah.

Jadi saya mengembangkan kembali sn.exe -i <infile> <container>perintah dalam C # menggunakan RSACryptoServiceProvider . Sumber dan aplikasinya ada di GitHub di SnInstallPfx proyek .

The SnInstallPfx app menerima kunci PFX dan password. Itu menghitung nama kontainer kunci (VS_KEY_ *) secara otomatis (dipinjam dari kode sumber MSBuild) dan menginstalnya ke CSP nama kuat.

Pemakaian:

SnInstallPfx.exe <pfx_infile> <pfx_password>
// or pass a container name if the default is not what you need (e.g. C++)
SnInstallPfx.exe <pfx_infile> <pfx_password> <container_name>
Honzajscz
sumber
0

Untuk siapa yang menggunakan pelari GitLab:

  • Pastikan untuk menjalankan pelari dengan akun yang dapat Anda masuki: ./gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password "ENTER-YOUR-PASSWORD"(Saya harus berhenti dan mencopot dulu)
  • ikuti panduan ini untuk memberikan izin membangun pengguna untuk login sebagai layanan
  • logon dengan build seperti itu pengguna
  • gunakan perintah yang disarankan dalam jawaban lain: sn -i certificate.pfx VS_KEY_C***6

nama kontainer disarankan dalam output Pekerjaan yang gagal di GitLab (output msbuild) masukkan deskripsi gambar di sini

Michele mpp Marostica
sumber