Variables de entorno
- NOMBRE DE USUARIO: nombre de usuario de la cuenta SSL.com. (Requerido)
- 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)
- ENTORNO_NOMBRE : Entorno 'TEST' o 'PROD'. (Requerido)
Ingresos
- ruta_archivo_entrada: ruta del objeto de código que se firmará. (Requerido)
- salida_dir_ruta: 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 de DLL de código .NET
Crear un archivo yml
Agrupe los trabajos en etapas. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.
etapas: - construir - firmar
Definir variables de entorno globalmente. La propiedad de nivel de trabajo anula las variables globales.
- 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 DOTNET_VERSION. La firma aún puede proceder con estas omisiones.
- En ENVIRONMENT_NAME, coloque "TEST" para la firma de prueba y "PROD" para la firma en vivo.
variables: PROJECT_NAME: "HelloWorld" PROJECT_VERSION: "0.0.1" DOTNET_VERSION: "3.1" ENVIRONMENT_NAME: "PROD"
Definir el Etapa de construcción
A continuación se muestra la definición de su trabajo para construir el artefacto dll
construir-dotnet:
- Defina en qué etapa se ejecutará el trabajo.
etapa: construir
- Coloque el nombre completo de la imagen que se debe utilizar. Debe contener la parte del Registro si es necesario.
imagen: mcr.microsoft.com/dotnet/sdk:3.1-bullseye
- Defina los scripts que deben ejecutarse *antes* del trabajo. Se puede configurar globalmente o por trabajo.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artefactos - mkdir -p ${CI_PROJECT_DIR}/paquetes
- Defina los scripts de Shell ejecutados por el Runner. Crear artefacto DLL
script: - dotnet build dotnet/${PROJECT_NAME}.csproj -c Release - cp dotnet/bin/Release/netcoreapp${DOTNET_VERSION}/${PROJECT_NAME}-${PROJECT_VERSION}.dll ${CI_PROJECT_DIR}/packages/${ NOMBRE_PROYECTO}.dll
- Especifique una lista de archivos y directorios que deben adjuntarse al trabajo si tiene éxito.
- La 'expira en' propiedad permite que el archivo se elimine después de un cierto período de tiempo. Su uso es opcional. Esta es la razón por la que la captura de pantalla del flujo de trabajo de ejemplo anterior no muestra esta propiedad.
artefactos: rutas: - ${CI_PROJECT_DIR}/packages/HelloWorld.dll expire_in: 5 minutos
Definir la etapa de signos
A continuación se muestra la definición de su trabajo para firmar el artefacto dll
firmar-dotnet-artefactos:
- Defina en qué etapa se ejecutará el trabajo.
etapa: firmar
- Coloque el nombre completo de la imagen que se debe utilizar. Debe contener la parte del Registro si es necesario.
imagen: ventana acoplable: 19.03.0
- Definir servicios. Esto es similar a la propiedad `image`, pero vinculará los servicios especificados al contenedor `image`.
servicios: - docker:19.03.0-dind
- Defina variables de entorno para trabajos específicos.
- En la captura de pantalla anterior, el comando de firma se definió directamente en el script de firma y no en las variables de entorno. BAmbos métodos pueden firmar correctamente con TravisCI.
variables: COMANDO: "firmar"
- Defina los scripts que deben ejecutarse *antes* del trabajo. Se puede configurar globalmente o por trabajo.
before_script: - mkdir -p ${CI_PROJECT_DIR}/artefactos - mkdir -p ${CI_PROJECT_DIR}/paquetes
- Coloque los scripts de Shell ejecutados por el Runner. Firme el artefacto .NET dll con CodeSignTool Docker Image
script: - docker pull ghcr.io/sslcom/codesigner:latest - docker run -i --rm --dns 8.8.8.8 --network host --volume ${CI_PROJECT_DIR}/packages:/codesign/examples --volume $ {CI_PROJECT_DIR}/artifacts:/codesign/output -e USERNAME=${USERNAME} -e PASSWORD=${PASSWORD} -e CREDENTIAL_ID=${CREDENTIAL_ID} -e TOTP_SECRET=${TOTP_SECRET} -e ENVIRONMENT_NAME=${ENVIRONMENT_NAME} ghcr.io/sslcom/codesigner:último ${COMANDO} -input_file_path=/codesign/examples/${PROJECT_NAME}.dll -output_dir_path=/codesign/output
- Escriba el script que se puede usar para especificar una lista de archivos y directorios que se deben adjuntar al trabajo si tiene éxito.
artefactos: rutas: - ${CI_PROJECT_DIR}/artifacts/${PROJECT_NAME}.dll expire_in: 1 días
- Especifique una lista de nombres de trabajos de etapas anteriores desde las que se deben cargar los artefactos.
dependencias: - build-dotnet
Iniciar la etapa de construcción
Crea un repositorio
Consulte las instrucciones de la línea de comandos en Gitlab como se ve en la captura de pantalla a continuación
Empuje su carpeta
Haz esto haciendo clic terminal en el menú, seguido de Nueva terminal.
Escriba el script de inserción en su terminal para impulsar el proyecto
Haga clic en el botón Construir
Después de activar la canalización, proceda a compilar
Comprobar si la construcción es exitosa
Iniciar la etapa de firma
Proceder a firmar el artefacto
Confirme si la firma del código es exitosa
Ahora puede descargar el archivo firmado
Ejemplo de canalización de CI de Gitlab
Echa un vistazo a la canalización de Gitlab CI de muestra que hemos creado en github.com/SSLcom/codesigner-gitlabci-sampleOtras 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 acciones de GitHub
- 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
- Integración de firma de código en la nube con BitBucket
- 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.