2012-10-05 32 views
7

¿Puedo usar Inno Setup para importar un archivo .cer (un certificado)?Usando Inno Setup, ¿cómo importar un archivo .cer de certificado?

¿Cómo puedo hacerlo?

Necesito crear un instalador certificado para Windows XP, Windows Vista y Windows 7.

+0

Estaba pensando acerca del uso de una línea de comandos con la utilidad Certmgr.exe. ¿Funcionaría con todos los sistemas de Windows? –

+4

Certmgr.exe no es parte de Windows, por lo que debe agruparlo en su instalador. Creo que debería funcionar con todas las versiones de Windows, ya que es parte de Windows SDK. –

Respuesta

3

Añadir Certmgr.exe y yourcertificate.cer en configuración:

[Files] 
Source: CertMgr.exe; DestDir: {app}; Flags: deleteafterinstall 
Source: yourcertificate.cer; DestDir: {app}; Flags: deleteafterinstall 

Y en la sección [Run], escribir algo como esto:

Filename: {app}\CertMgr.exe; Parameters: "-add -all -c yourcertificate.cer -s -r localmachine trustedpublisher"; Flags: waituntilterminated runhidden; 
+1

Si es redistribuible ... – TLama

+0

En mi caso, es un certificado autofirmado. por lo que esa línea localmachine finalizó con root – YumYumYum

6

en realidad, el CertMgr.exe no está disponible en todos los ordenadores y, además, no parece ser redistribuido (como se insinuó por @TL ama); y además ni siquiera lo necesitas.

CertUtil está disponible en todas las máquinas de Windows (que he probado) y funciona a la perfección:

[Run] 
Filename: "certutil.exe"; Parameters: "-addstore ""TrustedPublisher"" {app}\MyCert.cer"; \ 
    StatusMsg: "Adding trusted publisher..." 
+0

¿Puedes elaborar en * "cada máquina de Windows (que he probado)" *? –

+0

@MartinPrikryl Es cierto que podría haber hecho más pruebas. Lo descubrí ayer y no lo he probado exhaustivamente; hasta ahora solo en máquinas Win 10. Pero uno es VM en Azure, 2 son PC normales sin visual studio, dotNets, etc. (entonces no hay CertMgr.exe disponible), y luego está mi DevPC que tiene CertMgr pero CertUtil también trabaja en él. – SlowLearner

+0

@MartinPrikryl ¿por qué agregar el '\' antes de StatusMsg? – SlowLearner

Cuestiones relacionadas