How to create an app package signing certificate (Cómo crear un certificado de firma del paquete de la aplicación)
Importante
MakeCert.exe está en desuso. Para obtener instrucciones actuales sobre cómo crear un certificado, consulte Creación de un certificado para la firma de paquetes.
Obtenga información sobre cómo usar MakeCert.exe y Pvk2Pfx.exe para crear un certificado de firma de código de prueba para que pueda firmar los paquetes de aplicaciones de Windows.
Debe firmar digitalmente las aplicaciones empaquetadas de Windows antes de implementarlas. Si no usa Microsoft Visual Studio 2012 para crear y firmar los paquetes de la aplicación, debe crear y administrar sus propios certificados de firma de código. Puedes crear certificados mediante MakeCert.exe y Pvk2Pfx.exe desde el Kit de controladores de Windows (WDK). A continuación, puede usar los certificados para firmar los paquetes de la aplicación, por lo que se pueden implementar localmente para realizar pruebas.
Lo que necesita saber
Tecnologías
- Introducción a la firma de código
- Paquetes de aplicaciones e implementación
- Herramientas para firmar controladores
Requisitos previos
- herramientas deMakeCert.exe y Pvk2Pfx.exe del WDK
Instrucciones
Paso 1: Determinar el nombre del publicador del paquete
Para que el certificado de firma que cree se pueda usar con el paquete de aplicación que desea firmar, el nombre del firmante del certificado de firma debe coincidir con el atributo Publisher del elemento Identity en el AppxManifest.xml de esa aplicación. Por ejemplo, supongamos que el AppxManifest.xml contiene:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
Para el parámetro publisherName que especifique con la utilidad MakeCert en el paso siguiente, use "CN=Contoso Software, O=Contoso Corporation, C=US".
Nota
Esta cadena de parámetro se especifica entre comillas y distingue mayúsculas de minúsculas y espacios en blanco.
La cadena de atributo Publisher que se define para el elemento Identity de la AppxManifest.xml debe ser idéntica a la cadena que especifique con el parámetro MakeCert /n para el nombre del firmante del certificado. Copie y pegue la cadena siempre que sea posible.
Paso 2: Creación de una clave privada mediante MakeCert.exe
Use la utilidad MakeCert para crear un certificado de prueba autofirmado y una clave privada:
MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e <expirationDate> /sv MyKey.pvk MyKey.cer
Este comando le pide que proporcione una contraseña para el archivo .pvk. Se recomienda elegir una contraseña segura y mantener la clave privada en una ubicación segura.
Se recomienda usar los parámetros sugeridos en el ejemplo anterior por estos motivos:
-
/R
-
Crea un certificado raíz autofirmado. Esto simplifica la administración del certificado de prueba.
-
/h 0
-
Marca la restricción básica para el certificado como una entidad final. Esto impide que el certificado se use como entidad de certificación (CA) que pueda emitir otros certificados.
-
/Eku
-
Establece los valores de Uso mejorado de claves (EKU) para el certificado.
Nota
No coloque un espacio entre los dos valores delimitados por comas.
- 1.3.6.1.5.5.7.3.3 indica que el certificado es válido para la firma de código. Especifique siempre este valor para limitar el uso previsto para el certificado.
- 1.3.6.1.4.1.311.10.3.13 indica que el certificado respeta la firma de duración. Normalmente, si una firma tiene una marca de tiempo, siempre y cuando el certificado fuera válido en el momento en que se marcaba la hora, la firma seguirá siendo válida aunque expire el certificado. Esta EKU obliga a que la firma expire independientemente de si la firma tiene la marca de tiempo.
-
/e
-
Establece la fecha de expiración del certificado. Proporcione un valor para el parámetro expirationDate en el formato mm/dd/aaaa. Se recomienda elegir una fecha de expiración solo siempre y cuando sea necesario para las pruebas, normalmente menos de un año. Esta fecha de expiración junto con la EKU de firma de duración puede ayudar a limitar la ventana en la que el certificado se puede poner en peligro y usarse incorrectamente.
Para obtener más información sobre otras opciones, consulta MakeCert.
Paso 3: Crear un archivo de intercambio de información personal (.pfx) mediante Pvk2Pfx.exe
Use la utilidad Pvk2Pfx para convertir los archivos .pvk y . cer creados en un archivo .pfx que puede usar con SignTool para firmar un paquete de aplicación:
Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]
Los archivos MyKey.pvk y MyKey.cer son los mismos que MakeCert.exe creados en el paso anterior. Con el parámetro /po opcional, puede especificar una contraseña diferente para el archivo .pfx resultante; de lo contrario, .pfx tiene la misma contraseña que MyKey.pvk.
Para obtener más información sobre otras opciones, consulta Pvk2Pfx.
Observaciones
Después de crear el archivo .pfx, puede usar el archivo con SignTool para firmar un paquete de aplicación. Para obtener más información, consulta Cómo firmar un paquete de aplicación mediante SignTool. Sin embargo, el equipo local todavía no confía en el certificado para la implementación de paquetes de aplicaciones hasta que lo instale en el almacén de certificados de confianza del equipo local. Puede usar Certutil.exe, que viene con Windows.
Para instalar certificados con WindowsCertutil.exe
Ejecute Cmd.exe como administrador.
Ejecute este comando:
Certutil -addStore TrustedPeople MyKey.cer
Se recomienda quitar los certificados si ya no están en uso. En el mismo símbolo del sistema de administrador, ejecute este comando:
Certutil -delStore TrustedPeople certID
CertID es el número de serie del certificado. Ejecute este comando para determinar el número de serie del certificado:
Certutil -store TrustedPeople
Consideraciones sobre la seguridad
Al agregar un certificado a los almacenes de certificados de equipo local, afecta a la confianza de certificado de todos los usuarios del equipo. Se recomienda instalar los certificados de firma de código que desee para probar paquetes de aplicaciones en el almacén de certificados de Personas de confianza. Quite rápidamente esos certificados cuando ya no sean necesarios, para evitar que se usen para poner en peligro la confianza del sistema.
Temas relacionados
-
Muestras
-
Conceptos
-
How to sign an app package using SignTool (Cómo firmar un paquete de la aplicación con SignTool)