Error de Signtool: ¿No se encontraron certificados que cumplieran con todos los criterios dados con una aplicación de la Tienda Windows?
Estoy intentando firmar un paquete appx de Windows 8 con un archivo pfx que tengo. Estoy usando un comando como este:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
Y de esto obtengo:
Error de SignTool: no se encontraron certificados que cumplieran con todos los criterios indicados.
¿Qué "criterios" no estoy cumpliendo? Esto es sólo para pruebas, por lo que son certificados autofirmados. Intenté importar la clave y luego firmarla, pero siempre aparece el mismo error. ¿Cómo puedo solucionar esto?
Cuando recibí este error a través de Visual Studio, fue porque había una configuración de certificado de firma que coincidía con la computadora en la que se desarrolló originalmente.
Puede verificar esto yendo a la pestaña propiedades del proyecto > firma y verificando los detalles del certificado.
Puede desmarcar "Firmar los manifiestos de ClickOnce" para deshabilitar la firma.
Si no desea desactivar esta opción, deberá instalar el certificado.
Pruebe con /debug. 1,2 Como en:
signtool sign /debug /f mypfxfile.pfx /p <password> (mydllexectuable).exe
Le ayudará a descubrir qué está pasando. Deberías obtener un resultado como este:
The following certificates were considered:
Issued to: <issuer>
Issued by: <certificate authority> Class 2 Primary Intermediate Server CA
Expires: Sun Mar 01 14:18:23 2015
SHA1 hash: DD0000000000000000000000000000000000D93E
Issued to: <certificate authority> Certification Authority
Issued by: <certificate authority> Certification Authority
Expires: Wed Sep 17 12:46:36 2036
SHA1 hash: 3E0000000000000000000000000000000000000F
After EKU filter, 2 certs were left.
After expiry filter, 2 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
Puede ver qué filtro está provocando que su certificado no funcione o si no se consideró ningún certificado.
Cambié los hashes y otra información, pero deberías hacerte una idea.
1 Tenga en cuenta: signtool
es particular sobre dónde /debug
se coloca la opción. Tiene que ir después de la sign
declaración.
2 También tenga en cuenta: la /debug
opción solo funciona con algunas versiones de signtool
. La versión WDK tiene la opción, mientras que la versión Windows SDK no.