Cara memecahkan masalah kesalahan tanda tangan paket aplikasi

Kegagalan penyebaran aplikasi dapat disebabkan oleh kegagalan untuk memvalidasi tanda tangan digital paket aplikasi. Pelajari cara mengenali kegagalan ini, dan apa yang harus dilakukan tentang kegagalan tersebut.

Saat Anda menyebarkan aplikasi Windows yang dipaketkan, Windows selalu mencoba memvalidasi tanda tangan digital pada paket aplikasi. Kegagalan selama penyebaran blok validasi tanda tangan paket. Tetapi mengapa paket tidak divalidasi mungkin tidak jelas. Secara khusus, jika Anda menandatangani paket Anda dengan sertifikat privat untuk pengujian lokal, Anda sering kali harus mengelola kepercayaan untuk sertifikat tersebut juga. Konfigurasi kepercayaan sertifikat yang salah dapat menyebabkan kegagalan validasi tanda tangan.

Apa yang perlu Anda ketahui

Teknologi

Prasyarat

Petunjuk

Langkah 1: Memeriksa log peristiwa untuk informasi diagnostik

Bergantung pada cara Anda mencoba menyebarkan aplikasi, Anda mungkin belum menerima kode kesalahan yang bermakna untuk kegagalan penyebaran. Dalam hal ini, Anda biasanya bisa mendapatkan kode kesalahan langsung dari log peristiwa.

Untuk mendapatkan kode kesalahan dari log peristiwa

  1. Jalankan eventvwr.msc.

  2. Buka Pemantau Peristiwa (Lokal)>Log>Aplikasi dan Layanan Microsoft>Windows.

  3. Log pertama yang harus diperiksa adalah AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational.

  4. Kesalahan terkait penyebaran dicatat di AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational.

    Untuk kesalahan penyebaran, cari peristiwa kesalahan terbaru 404. Kejadian kesalahan ini memberi Anda kode kesalahan dan deskripsi mengapa penyebaran gagal. Jika peristiwa kesalahan 465 sebelum peristiwa 404, ada masalah saat membuka paket.

Jika kesalahan 465 tidak terjadi, lihat pemecahan masalah umum pengemasan, penyebaran, dan kueri aplikasi Windows. Jika tidak, lihat tabel ini untuk kode kesalahan umum yang dapat muncul dalam string kesalahan untuk peristiwa kesalahan 465:

Kode kesalahan Kesalahan Deskripsi Saran
0x80073CF0 ERROR_INSTALL_OPEN_PACKAGE_FAILED Paket aplikasi tidak dapat dibuka. Kesalahan ini biasanya menunjukkan masalah dengan paket. Anda perlu membangun dan menandatangani paket lagi. Untuk informasi selengkapnya, lihat Menggunakan App Packager.
0x80080205 APPX_E_INVALID_BLOCKMAP Paket aplikasi telah dirusak atau memiliki peta blok yang tidak valid. Paket rusak. Anda perlu membangun dan menandatangani paket lagi. Untuk informasi selengkapnya, lihat Menggunakan App Packager.
0x800B0004 TRUST_E_SUBJECT_NOT_TRUSTED Paket aplikasi telah dirusak. Isi paket tidak lagi cocok dengan tanda tangan digitalnya. Anda perlu menandatangani paket lagi. Untuk informasi selengkapnya, lihat Cara menandatangani paket aplikasi menggunakan SignTool.
0x800B0100 TRUST_E_NOSIGNATURE Paket aplikasi tidak ditandatangani. Hanya paket aplikasi Windows yang ditandatangani yang dapat disebarkan. Untuk informasi tentang menandatangani paket aplikasi, lihat Cara menandatangani paket aplikasi menggunakan SignTool.
0x800B0109 CERT_E_UNTRUSTED_ROOT Rantai sertifikat yang digunakan untuk menandatangani paket aplikasi berakhir dengan sertifikat akar yang tidak tepercaya. Lanjutkan ke Langkah 2 untuk memecahkan masalah kepercayaan sertifikat.
0x800B010A CERT_E_CHAINING Tidak ada rantai sertifikat yang dapat dibangun ke otoritas akar tepercaya dari sertifikasi yang digunakan untuk menandatangani paket aplikasi. Lanjutkan ke Langkah 2 untuk memecahkan masalah kepercayaan sertifikat.

 

Langkah 2: Tentukan rantai sertifikat yang digunakan untuk menandatangani paket aplikasi

Untuk mengetahui sertifikat yang harus dipercaya komputer lokal, Anda dapat memeriksa rantai sertifikat untuk tanda tangan digital pada paket aplikasi.

Untuk menentukan rantai sertifikat

  1. Di File Explorer, klik kanan pada paket aplikasi dan pilih Properti.
  2. Dalam dialog Properti, pilih tab Tanda Tangan Digital, yang juga menampilkan apakah tanda tangan dapat divalidasi.
  3. Di daftar Tanda Tangan, pilih tanda tangan lalu klik tombol Detail .
  4. Dalam dialog Detail Tanda Tangan Digital, klik tombol Tampilkan Sertifikat.
  5. Dalam dialog Sertifikat, pilih tab Jalur Sertifikasi.

Sertifikat teratas dalam rantai adalah sertifikat akar dan sertifikat bawah adalah sertifikat penandatanganan. Jika hanya satu sertifikat yang ada dalam rantai, sertifikat penandatanganan juga merupakan sertifikat akarnya sendiri. Anda dapat menentukan nomor seri untuk setiap sertifikat yang kemudian Anda gunakan dengan Certutil:

Untuk menentukan nomor seri untuk setiap sertifikat

  1. Di panel Jalur sertifikasi, pilih sertifikat lalu klik Tampilkan Sertifikat.
  2. Dalam dialog Sertifikat, pilih tab Detail , yang menampilkan nomor seri dan properti sertifikat lain yang berguna.

Langkah 3: Tentukan sertifikat yang dipercaya oleh komputer lokal

Agar dapat menyebarkan paket aplikasi, paket tersebut tidak hanya boleh dipercaya dalam konteks pengguna tetapi juga konteks komputer lokal. Akibatnya, tanda tangan digital dapat muncul valid saat dilihat di tab Tanda Tangan Digital dari langkah sebelumnya tetapi masih gagal validasi selama penyebaran paket aplikasi.

Untuk menentukan apakah rantai sertifikat yang digunakan untuk menandatangani paket aplikasi secara khusus dipercaya oleh komputer lokal

  1. Jalankan perintah ini:

    CertUtil.exe -store Root rootCertSerialNumber
    
  2. Jalankan perintah ini:

    CertUtil.exe -store TrustedPeople signingCertSerialNumber
    

Jika Anda tidak menentukan nomor seri sertifikat, Certutil mencantumkan semua sertifikat yang dipercaya oleh komputer lokal untuk penyimpanan tersebut.

Paket mungkin gagal diinstal karena kesalahan penautan sertifikat, bahkan jika sertifikat penandatanganan tidak ditandatangani sendiri dan sertifikat akar berada di penyimpanan akar komputer lokal. Dalam hal ini, mungkin ada masalah dengan kepercayaan untuk otoritas sertifikat perantara. Untuk informasi selengkapnya tentang masalah ini, lihat Bekerja dengan Sertifikat.

Keterangan

Jika Anda menentukan bahwa paket tidak dapat disebarkan karena sertifikat penandatanganan tidak tepercaya, jangan instal paket kecuali Anda tahu dari mana asalnya dan Anda mempercayainya.

Jika Anda ingin mempercayai aplikasi secara manual untuk diinstal (misalnya, untuk menginstal paket aplikasi yang ditandatangani pengujian Anda sendiri), Anda dapat menambahkan sertifikat secara manual ke kepercayaan sertifikat komputer lokal dari paket aplikasi.

Untuk menambahkan sertifikat secara manual ke kepercayaan sertifikat komputer lokal

  1. Di File Explorer, klik kanan pada paket aplikasi, dan di menu konteks pop-up pilih Properti.
  2. Dalam dialog Properti, pilih tab Tanda Tangan Digital.
  3. Di daftar Tanda Tangan, pilih tanda tangan lalu klik tombol Detail .
  4. Dalam dialog Detail Tanda Tangan Digital, klik tombol Tampilkan Sertifikat.
  5. Dalam dialog Sertifikat, klik tombol Instal Sertifikat... .
  6. Di Wizard Impor Sertifikat, pilih Komputer Lokal lalu klik Berikutnya. Anda harus memberikan hak istimewa administrator untuk melanjutkan.
  7. Pilih Tempatkan semua sertifikat di penyimpanan berikut dan telusuri ke penyimpanan Orang Tepercaya.
  8. Klik Berikutnya, lalu klik Selesai untuk menyelesaikan panduan.

Setelah penambahan manual ini, Anda dapat melihat bahwa sertifikat sekarang dipercaya dalam dialog Sertifikat .

Anda dapat menghapus sertifikat setelah Anda tidak lagi membutuhkannya.

Untuk menghapus sertifikat

  1. Jalankan Cmd.exe sebagai administrator.

  2. Di prompt perintah administrator, jalankan perintah ini:

    Certutil -store TrustedPeople
    
  3. Cari nomor seri sertifikat yang Anda instal. Nomor ini adalah certID.

  4. Jalankan perintah ini:

    Certutil -delStore TrustedPeople certID
    

Kami menyarankan agar Anda menghindari penambahan sertifikat akar secara manual ke Penyimpanan Sertifikat Otoritas Sertifikasi Akar Tepercaya komputer lokal. Memiliki beberapa aplikasi yang ditandatangani dengan sertifikat yang dirantai ke sertifikat akar yang sama, seperti aplikasi lini bisnis, bisa lebih efisien daripada menginstal sertifikat individual ke penyimpanan Orang Tepercaya. Penyimpanan Orang Tepercaya berisi sertifikat yang dianggap tepercaya secara default dan tidak diverifikasi oleh otoritas atau daftar atau rantai kepercayaan sertifikat yang lebih tinggi. Untuk pertimbangan tentang menambahkan sertifikat ke penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya, lihat Praktik Terbaik Penandatanganan Kode.

Pertimbangan Keamanan

Dengan menambahkan sertifikat ke penyimpanan sertifikat komputer lokal, Anda memengaruhi kepercayaan sertifikat semua pengguna di komputer. Kami menyarankan agar Anda menginstal sertifikat penandatanganan kode apa pun yang Anda inginkan untuk menguji paket aplikasi ke penyimpanan sertifikat Orang Tepercaya. Segera hapus sertifikat tersebut ketika tidak lagi diperlukan, untuk mencegah sertifikat tersebut digunakan untuk membahayakan kepercayaan sistem. Jika Anda membuat sertifikat pengujian Anda sendiri untuk menandatangani paket aplikasi, kami juga menyarankan agar Anda membatasi hak istimewa yang terkait dengan sertifikat pengujian. Untuk informasi tentang membuat sertifikat pengujian untuk menandatangani paket aplikasi, lihat Cara membuat sertifikat penandatanganan paket aplikasi.

Sampel

Membuat sampel paket aplikasi

Konsep

Pemecahan masalah pengemasan, penyebaran, dan kueri aplikasi Windows

Tugas certutil untuk mengelola sertifikat