Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cargar un certificado desde Inno Setup (https://www.clubdelphi.com/foros/showthread.php?t=89344)

Zina 05-11-2015 20:10:37

Cargar un certificado desde Inno Setup
 
Hola chicos de nuevo,

Como saben soy nueva con el tema de Inno Setup por lo que ahora necesito agregar un certificado en cacerts con el cmd line keytool: keytool -import -noprompt -trustcacerts -alias, ya lo he hecho manualmente y si lo crea, pero ahora necesito que el mismo intalador de Inno Setup lo haga por mi jejeje, e intentado con [Run] pero sólo al terminar la instalación me ejecuta el ms-dos, pero no hace nada más, espero haberme explicado bien, espero sus comentarios.

Muchas Gracias

Neftali [Germán.Estévez] 06-11-2015 08:33:19

Aquí, en la propia ayuda de Inno setup tienes ejemplos de cómo lanzar un comando MSDOS desde un script de instalación de Inno setup.

Lo más sencillo es que crees un fichero .BAT con todo lo que necesitas ejecutar y lo lances desde el Inno.

Zina 10-11-2015 01:24:09

Hola de nuevo,

Ya hice un .bat que me ejecute el agregar un certificado:

keytool -import -noprompt -trustcacerts -alias ....
Código Delphi [-]
[Run]
Filename: "{userdesktop}\keytool.bat"
El problema es que a la hora de ejecutarlo entra al cmd y se hace un ciclo sin fin, por lo que tengo que parar la instalación y por lo tanto no me agrega el certificado, ustedes sabrán por que hace eso?

Se los agradezco mucho

mamcx 10-11-2015 03:14:37

Porque lo haces con el instalador? No va el certificado aplicado al exe que vas a instalar despues?

Zina 10-11-2015 16:40:15

No, el chiste de esto es que el instalador haga todo, el usuario solo debe de darle clic en instalar y ya, no hacer más tareas, el keytool lo que hace es instalar el certificado en cacerts de Java, el cual agrego en la carpeta de instalación.
Había mandado a traer desde el Inno Setup el cmd:
Código Delphi [-]
[Run]
Filename: {cmd}; Parameters: ('keytool -import...')

Pero lo único que hace es mandar a llamar el cmd y no agrega la línea de comando a ejecutar.
Después la sugerencia fue que mandara a llamar un .bat, ahi agregué la linea de comando que necesito pero al ejecutar mi instalador lo hace bien y al final manda llamar el .bat y se queda en un ciclo y no agrega el certificado

dec 10-11-2015 17:16:48

Hola,

Aquí un artículo en inglés que acaso pueda ser de interés.

dec 10-11-2015 17:23:34

Hola,

Creo que en mi anterior mensaje cometí un error, puesto que me parece ahora que no se trata el tema de cómo firmar nuestro instalador de Inno Setup, sino de otra cosa. Lo lamento, pero, tal vez el artículo enlazado siga sirviendo a alguien: de hecho acabo de probarlo y funciona como se espera.

Zina 18-11-2015 22:10:14

Hola ,
Retomando el tema, hice un archivo .bat como me lo recomendaron:

Código Delphi [-]
echo off
setlocal

set JAVA_HOME=C:\Archivos de programa\Java\jre1.8.0_60

set CERT_NAME=certificado.cer
set CERT_ALIAS=alias1

set KEYTOOL_PASS=changeit

set JAVA_SECURITY=%JAVA_HOME%\lib\security\
set CERT_Ruta=C:\ruta de programa
set CERT=%CERT_Ruta%\%CERT_NAME%
keytool -import -trustcacerts -keystore %JAVA_SECURITY%cacerts -storepass %KEYTOOL_PASS% -noprompt -alias %CERT_ALIAS% -file %CERT%
endlocal
pause

En inno lo mando a traer en
Código Delphi [-]
[Run]
Filename: "{userdesktop}\keytool.bat"; Flags: nowait skipifsilent
Pero no me lo ejecuta como yo quisiera :( me sale error : "se ha alcanzado el maximo nivel de recursividad"

Necesito ayuda :(

roman 19-11-2015 16:23:37

Hola,

Según entiendo, keytool es una herramienta de java, y, por otro lado, también así se llama tu archivo bat. Es posible entonces, que en la línea

Código:

keytool -import -trustcacerts -keystore %JAVA_SECURITY%cacerts -storepass %KEYTOOL_PASS% -noprompt -alias %CERT_ALIAS% -file %CERT%
el S.O esté intentando llamar al bat (o sea, a sí mismo) en lugar de la herramienta de java. De ahí la recursividad.

Si esto es lo que pasa, podrías solventarlo especificando la ruta completa a la herramienta y/o cambiando el nombre del bat.

Por otra parte, si la herramienta es un ejecutable, pienso que podrías ejecutarla directamente desde la sección [Run] del script de Inno Setup, en ligar de hacerlo a través de un bat. Aun no siendo un ejecutable (un archivo jar, por ejemplo), la documentación de InnoSetup indica que puedes ejecutarla especificando la opción shellexec.

// Saludos

Zina 20-11-2015 22:33:12

De verdad, muchas Gracias, ya resultó :D

roman 20-11-2015 23:50:50

Pues ¡qué bueno! Sería deseable que expusieras cuál fue la solución final para otros que puedan requerir algo similar.

// Saludos

dec 21-11-2015 12:02:28

Hola,

Cita:

Empezado por dec (Mensaje 499132)
Hola,

Creo que en mi anterior mensaje cometí un error, puesto que me parece ahora que no se trata el tema de cómo firmar nuestro instalador de Inno Setup, sino de otra cosa. Lo lamento, pero, tal vez el artículo enlazado siga sirviendo a alguien: de hecho acabo de probarlo y funciona como se espera.

A esto tengo que añadir que al final he cambiado el sistema que estaba usando hasta ahora para firmar el instalador por el que proporciona el mismo Inno Setup. Anteriormente, ejecutaba también un archivo BAT después de la instalación, que, se encargaba de "firmar" el ejecutable del instalador.

Pero esto tiene el inconveniente de que el desinstalador (otro ejecutable) no se firmaba. Ahora bien, haciéndolo desde Inno Setup, el mismo programa se encarga de firmar ambos ejecutables instalador y desinstalador. Además de que así no es preciso que hagamos nada luego de crear el instalador, pues Inno Setup se encarga de todo.

Zina 24-11-2015 00:39:03

Hola,

Efectivamente estaba volviendo a llamar la ruta, mi solución fué poner el certificado (.cer) en la ruta de Java/jre/lib/security
Al archivo .bat le cambié el nombre y ejecuté en Inno.

Código Delphi [-]
[Run]
Filename: "{app}\certificado.bat"; Flags: nowait

Y listo eso fué, muchas gracias.


La franja horaria es GMT +2. Ahora son las 17:10:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi