Uso
- nombre: Firmar artefacto con CodeSignTool
usos: sslcom/actions-codesigner@desarrollar
con:
- Comandos de CodeSignTool:
– get_credential_ids
: genera la lista de ID de credenciales de eSigner asociadas con un usuario.
– credential_info
: Salida de información de clave y certificado relacionada con un ID de credencial.
– sign
: Objeto de código de firma y marca de tiempo.
– batch_sign
: Firme y marque la fecha y hora de varios objetos de código con una sola OTP.
– hash
: Precalcular hash(es) para su uso posterior con el comando batch_hash_sign.
– batch_sign_hash
: Signo(s) hash(es) calculado(s) previamente con el comando hash.
mando: firmar
- Nombre de usuario de la cuenta SSL.com.
username: ${{secrets.ES_USERNAME}}
- Contraseña de la cuenta SSL.com.
password: ${{secrets.ES_PASSWORD}}
- ID de credencial para el certificado de firma.
credential_id: ${{secrets.CREDENTIAL_ID}}
- OAuth TOTP Secreto (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Ruta del objeto de código que se va a firmar.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Directorio donde se escribirán los objetos de código firmado.
output_path: ${GITHUB_WORKSPACE}/artifacts
Ingresos
- nombre de usuario: nombre de usuario de la cuenta SSL.com. (Requerido)
- la contraseña: Contraseña de la cuenta SSL.com (Obligatorio)
- credencial_id: ID de credencial para el certificado de firma. Si se omite credential_id y el usuario tiene solo un certificado de firma de código de eSigner, CodeSignTool lo usará de forma predeterminada. Si el usuario tiene más de un certificado de firma de código, este parámetro es obligatorio. (Requerido)
- totp_secreto: OAuth TOTP Secreto. Puede acceder a información detallada sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obligatorio)
- ruta de archivo: ruta del objeto de código que se firmará. (Requerido)
- ruta de salida: Directorio donde se escribirán los objetos de código firmados. Si se omite output_path, el archivo especificado en -file_path se sobrescribirá con el archivo firmado.
Flujo de trabajo de ejemplo de firma JAR de código Java (Maven)
Preparar los componentes del flujo de trabajo
- Cree una carpeta de Github en su editor. Incluya flujos de trabajo con la carpeta y cree un archivo yml debajo de la carpeta.
- Nombre su proyecto y el tipo de flujo de trabajo involucrado
Nombre: Maven construir y firmar
- Active este flujo de trabajo en un momento
en: empujar
- Crea una variable de entorno
- Las variables de entorno se utilizan para hacer que las muestras sean más legibles. En la captura de pantalla anterior del flujo de trabajo de ejemplo, se omitieron opcionalmente PROJECT_NAME, PROJECT_VERSION y MAVEN_VERSION. La firma aún puede proceder incluso con estas omisiones.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Define los trabajos en tu editor
trabajos: build-and-sign-jar:
- Ejecutar trabajo en Ubuntu Runner
se ejecuta en: ubuntu-latest
- Crea un nombre. Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra.
nombre: CodeSigner en Java con Maven
Describa los pasos para comprobar el código fuente, configurar el entorno Java y Maven y crear el directorio de artefactos.
1) Consulte el código fuente para que el flujo de trabajo pueda acceder a él.
pasos: - usos: acciones/checkout@v2
2) Configure el entorno Java y Maven para que lo use el flujo de trabajo.
- nombre: Instale Maven y usos de Java: s4u/setup-maven-action@v1.3.1 con: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) Crear un directorio de artefactos para almacenar archivos de artefactos firmados y sin firmar
- nombre: Create Directory shell: bash run: | mkdir ${GITHUB_WORKSPACE}/artefactos mkdir ${GITHUB_WORKSPACE}/paquetes
4) Cree un proyecto o solución maven y todas sus dependencias.
Después de que se haya creado el archivo jar, cópielo en la carpeta 'paquetes' para firmar
- En este flujo de trabajo de ejemplo de firma escrita, se crearon varios tipos de proyectos. Es por eso que los archivos de diferentes tipos de proyectos se mantuvieron creando subcarpetas. Se creó una subcarpeta llamada 'java' para proyectos Java. En la captura de pantalla de demostración anterior, no había necesidad de crear una subcarpeta llamada 'java', por lo que no se incluyó en el script.
- nombre: Build Java Project shell: bash run: | mvn clean install -f java/pom.xml cp java/target/${{env.PROJECT_NAME}}-${{env.PROJECT_VERSION}}.jar ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}. frasco
Resuma los pasos para los trabajos de Firmar y Cargar
- El trabajo de firma es el paso en el que los archivos JAR (artefactos) creados se firmarán con CodeSignTool.
- nombre: Sign Artifact uses: sslcom/actions-codesigner@develop con:
Objeto de código de firma y marca de tiempo.
comando: firmar
Nombre de usuario de la cuenta SSL.com.
nombre de usuario: ${{secrets.ES_USERNAME}}
Contraseña de la cuenta SSL.com.
contraseña: ${{secretos.ES_PASSWORD}}
ID de credencial para el certificado de firma.
credential_id: ${{secretos.CREDENTIAL_ID}}
Secreto TOTP de OAuth (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secretos.ES_TOTP_SECRET}}
Ruta del objeto de código que se va a firmar. (Archivos DLL, JAR, EXE, MSI vb… )
ruta_del_archivo: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Directorio donde se escribirán los objetos de código firmado.
ruta_de_salida: ${GITHUB_WORKSPACE}/artefactos
- El trabajo de carga es el paso en el que se cargarán los artefactos de su flujo de trabajo, lo que le permitirá compartir datos entre trabajos y almacenar datos una vez que se complete un flujo de trabajo.
- nombre: Subir archivos firmados usa: actions/upload-artifact@v2 con: nombre: ${{env.PROJECT_NAME}}.jar ruta: ./artifacts/${{env.PROJECT_NAME}}.jar
Obtenga un cargador de artefactos de compilación de Github Marketplace
Revise su script de codificación
En general, el script de codificación para los trabajos de creación, firma y carga debe verse como la imagen a continuación. Asegúrese de corregir cualquier error, como errores ortográficos o saltos de línea erróneos en el guión, para que el proceso de firma se realice sin problemas.
Defina sus variables de entorno
Vaya a la ubicación de su proyecto en su cuenta de Github. Haga clic en el Acciones lengüeta. Haga clic en el Nuevo repositorio secreto para colocar los valores de cada variable de entorno necesaria para firmar su código.
Crear un nuevo repositorio en la línea de comando
Proceda a la ubicación de su proyecto en Github y copie cada componente del comando push.
Empuje el proyecto
Incluya cada línea de comando push en su editor de código. Al finalizar, el código se insertará automáticamente en Github.
Espere a que el artefacto se firme con eSigner CodeSignTool
Sube el archivo firmado
Haga clic en el archivo firmado para cargarlo.
Ejemplo de canalización de acciones de Github
Echa un vistazo a la canalización de acciones de Github de muestra que hemos creado en github.com/SSLcom/codesigner-github-muestra
Otras guías de integración de firma remota de CI/CD
- Integración de firma de código en la nube con CircleCI
- Integración de firma de código en la nube con GitLab CI
- Integración de firma de código en la nube con Jenkins CI
- Integración de firma de código en la nube con Travis CI
- Integración de firma de código en la nube con Azure DevOps
- Automatización de la firma de código en la nube con servicios de CI/CD
¿Necesita soluciones personalizadas?
Con nuestro conocimiento experto y personal de soporte de cinco estrellas, estamos listos y dispuestos a trabajar con usted en soluciones personalizadas o descuentos en firmas de alto volumen a nivel empresarial. Complete el siguiente formulario y nos pondremos en contacto.