Saya mencoba menandatangani paket appx Windows 8 dengan file pfx yang saya miliki. Saya menggunakan perintah seperti ini:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
Dan dari ini, saya mendapatkan:
Kesalahan SignTool: Tidak ada sertifikat yang memenuhi semua kriteria yang diberikan.
"Kriteria" apa yang tidak saya penuhi? Ini hanya untuk pengujian sehingga ini adalah sertifikat yang ditandatangani sendiri. Saya sudah mencoba mengimpor kunci dan kemudian menandatanganinya, tetapi selalu menghasilkan kesalahan yang sama. Bagaimana cara saya memperbaikinya?
Signtool
sedang mencoba menemukan sertifikat di toko sertifikat akar tepercaya dan Anda tidak memiliki sertifikat penandatanganan kode di sana.Jawaban:
Ketika mendapatkan kesalahan ini melalui Visual Studio itu karena ada pengaturan sertifikat penandatanganan yang cocok dengan komputer itu pada awalnya dikembangkan.
Anda dapat memeriksa ini dengan masuk ke properti proyek> tab penandatanganan dan memeriksa detail sertifikat.
Anda dapat menghapus centang "Tandatangani manifes ClickOnce" untuk menonaktifkan penandatanganan.
Jika Anda tidak ingin mematikan opsi ini, Anda harus menginstal sertifikat.
sumber
Coba dengan / debug. 1,2 Seperti dalam:
Ini akan membantu Anda mengetahui apa yang sedang terjadi. Anda harus mendapatkan output seperti ini:
Anda dapat melihat filter apa yang menyebabkan sertifikat Anda tidak berfungsi, atau jika tidak ada sertifikat yang dipertimbangkan.
Saya mengubah hash dan info lainnya, tetapi Anda harus mendapatkan ide. Semoga ini membantu.
1 Harap dicatat:
signtool
khusus tentang di mana/debug
opsi ditempatkan. Perlu mengikutisign
pernyataan itu.2 Perhatikan juga:
/debug
opsi hanya berfungsi pada beberapa versisigntool
. Versi WDK memiliki opsi, sedangkan versi Windows SDK tidak.sumber
Harap selalu periksa tanggal kedaluwarsa sertifikat Anda terlebih dahulu karena sebagian besar sertifikat memiliki tanggal kedaluwarsa. Dalam kasus saya, sertifikat telah kedaluwarsa dan saya mencoba membangun proyek.
sumber
certutil -dump mycertificate.pfx
. Lihatlah entri terakhir karena yang pertama adalah CA, bukan sertifikat penandatanganan kode Anda.Jika Anda tidak harus menandatangani aplikasi, klik kanan pada proyek Anda
Project Properties -> Signing -> uncheck "Sign the ClickOnce Manifest"
Juga sebagai ini artikel MS menyarankan,
sumber
cukup hapus centang pada 'Masuk klik sekali manifes' dari tab penandatanganan di properti proyek, itu akan menghapus kesalahan dan Anda dapat membuat yang baru dari sana.
sumber
Mendapat masalah yang sama, ternyata kunci pribadi ke sertifikat tidak memiliki izin.
Untuk memperbaiki - membuka manajemen sertifikat, temukan sertifikat Anda, klik kanan -> Kelola Kunci Pribadi dan kemudian di keamanan di atas pastikan bahwa pengguna Anda ditambahkan dan diberikan izin, yang memperbaikinya untuk saya.
sumber
Dalam kasus saya, saya memiliki tipe sertifikat yang salah yang saya coba kaitkan.
Saya memiliki "Otentikasi Server" daripada "Penandatanganan kode" .
Anda harus dapat melihatnya di snap Sertifikat di bagian Tujuan yang Dituju.
Setelah itu, itu berfungsi dengan baik.
sumber
Jika ada orang lain yang mengalami hal ini: Masalah saya adalah saya harus menjalankan command prompt sebagai administrator sebelum menggunakan aplikasi signtool.exe. Kemudian semuanya bekerja dengan luar biasa.
sumber
Saya mendapat masalah yang sama dalam pengembangan aplikasi konsol saya dan sebagai solusi cepat ,
pergi ke sana
project properties
,klik pada
signing
tab dan hapus centang "Tandatangani Manifest ClickOnce".Uraian gambar; kesan:
FYI Anda juga dapat melihat solusi video kurang satu menit ini . Gambar di atas diambil dari video.
sumber
Saya memecahkan ini dengan menggunakan
/sm
flag untuk menentukan untuk melihat di toko mesin, bukan default, yaitu toko (Pengguna Lokal) saya. Juga, ini bisa membantu untuk mengaktifkan debug untuk signtool dengan menggunakan/debug
.sumber
Saya punya masalah ini dan saya tidak sepenuhnya yakin langkah mana di bawah ini yang berhasil, tetapi harap ini membantu orang lain ... inilah yang saya lakukan:
certmgr.msc
dan ekspor sertifikat (ditemukan di toko mana pun yang Anda gunakan pada langkah 1) sebagai file pfx termasuk kunci pribadi, dan properti yang diperluas (mungkin tidak perlu)signtool sign /f "c:\mycert.pfx" /p mypassword /d "description" /t http://timestamp.verisign.com/scripts/timstamp.dll $(TargetPath)
mana kata sandi sama dengan yang disediakan selama Ekspor
sumber
.crt
file yang disediakan Comodo alih-alih menginstal sertifikat dan kemudian mengekspor.pfx
file.Saya mengalami masalah yang sama, membaca beberapa jawaban (diposting di sini), saya melihat sertifikat saya kedaluwarsa.
Cukup buat yang baru dari proyek awal saya. Kemudian pada manajer sertifikat menghapus sertifikat kadaluarsa.
Sekarang semuanya terkompilasi dengan baik.
sumber
Kriteria tersebut meliputi nama akun (yang terkait dengan kunci privatnya), domain, perusahaan, tanggal kedaluwarsa, tujuan yang dimaksudkan, antara lain.
Ada banyak alasan yang memungkinkan untuk terjadinya kesalahan ini, beberapa telah terdaftar. Berikut ini tip lain: Saat mengimpor sertifikat, pastikan Anda bekerja dengan file asli yang diterima dari otoritas sertifikat (CA) , atau beberapa properti mungkin hilang.
Contoh: baru-baru ini saya mencoba mengimpor sertifikat yang diekspor dari akun yang berbeda di mesin yang sama. Sertifikat menjadi terlihat oleh akun saya tetapi tidak dikaitkan dengan akun saya, dan akibatnya
signtool
menolak untuk mengenalinya tanpa secara eksplisit memberikan nama file dan kata sandi. Yang, ketika dilakukan sebagai bagian dari proses build dan ditulis secara eksplisit dalam file batch atau file sumber, mungkin tidak cukup aman. (Mengimpor sertifikat yang dikeluarkan CA asli menyelesaikannya.)sumber
Saya memiliki pesan " Setelah Private Key filter, 0 sertifikat tersisa " yang sama dan menghabiskan terlalu banyak waktu dalam hidup saya untuk mencari tahu apa arti pesan itu.
Masalahnya adalah bahwa saya telah menginstal sertifikat secara tidak benar di toko Sertifikat Windows sehingga tidak ada kunci pribadi yang terkait dengan sertifikat penandatanganan kode.
Apa yang seharusnya saya lakukan adalah ini:
Baik menggunakan Firefox atau Internet Explorer, kirim permintaan ke penerbit. Ini menghasilkan KUNCI PRIVATE yang disimpan secara diam-diam oleh browser (sebuah dialog muncul selama sepersekian detik di Firefox). Perhatikan bahwa peramban lain mungkin tidak berfungsi: hidup Anda terlalu pendek untuk mengetahui apakah itu benar.
Kirimkan permintaan, lompati loop dan loop validasi penerbit, korbankan seekor kambing, berdoa kepada para dewa, kirimkan pernyataan yang ditandatangani dari kakek-nenek buyut Anda, dll.
Unduh sertifikat (.crt) dan impor ke browser yang sama . Browser sekarang memiliki kunci pribadi dan sertifikat .
Ekspor sertifikat dari browser sebagai file Personal Information Exchange (.p12). Anda akan diminta memberikan kata sandi untuk melindungi file ini.
Simpan salinan cadangan dari file .p12.
Jalankan Manajer Sertifikat (certmgr.msc), klik kanan pada toko sertifikat Pribadi , pilih Semua Tugas / Impor ... dan impor file .p12 ke Windows. Anda akan dimintai kata sandi yang Anda gunakan untuk melindungi file. Pada titik ini, tergantung pada persyaratan keamanan Anda, Anda dapat menandai kunci sebagai ekspor sehingga Anda dapat mengembalikan salinan dari toko Windows. Anda juga dapat menandai bahwa kata sandi diperlukan sebelum digunakan jika Anda ingin memecah skrip batch.
Jalankan signtool dengan sukses, tarik nafas lega, dan renungkan berapa banyak hidup Anda yang telah Anda buang karena pesan kesalahan yang buruk dan dokumentasi yang buruk atau hilang.
sumber
Saya juga pernah mengalami masalah ini, sudah mencoba banyak. Digunakan SDK serta penandatanganan Visual Studio, tetapi di mana-mana saya mendapat "Tidak ada sertifikat yang memenuhi semua kriteria yang diberikan".
Solusi: Perlu diketahui bahwa, jika "setelah filter kunci pribadi": '0 kiri' muncul dengan opsi signtool sign / debug ..., penyebabnya adalah PC Anda tidak memiliki CA sendiri di toko. Untuk mengatasi ini, instal CA terlebih dahulu (dalam kasus saya file .crt), kemudian jalankan tandanya lagi. Ini seharusnya berfungsi sekarang!
Signtool hanya dapat digunakan dengan CA yang diminta dan dimiliki oleh PC yang sama.
sumber
Masalah saya akhirnya adalah bahwa saya tidak mengerti opsi signtool. Saya telah memberikan opsi / n dengan sesuatu yang tidak cocok dengan sertifikat saya. Ketika saya dihapus itu berhenti mengeluh.
sumber
Saya memiliki masalah yang sama dengan nama komputer saya yang berubah dan sertifikat telah kedaluwarsa. Saya dapat menyelesaikan masalah ini dengan membuat sertifikat uji baru.
Di Visual Studio, klik kanan pada proyek di penjelajah solusi. Pilih properti. Pilih jendela Properti masuk. Klik "Buat Sertifikat Tes ....". Masukkan informasi kata sandi untuk sertifikat uji dan klik ok.
sumber
Dengan / debug, ketika Anda menerima pesan ini "Setelah filter Kunci Pribadi, 0 sertifikat tersisa.", Salah satu alasannya mungkin karena file pfx tidak memiliki kunci pribadi. Ketika Anda mengekspor sertifikat yang diinstal ke file pfx memastikan untuk mengaktifkan kotak centang untuk juga memasukkan kunci pribadi.
sumber
Pergi ke
project properties
dan hapus centang semua bidang dariFirm
sebelum init kompilasisumber