Icono del sitio SSL.com

Cómo integrar eSigner CKA con herramientas de CI/CD para la firma de código automatizada

Las dos tablas siguientes demuestran cómo integrar eSigner CKA con Herramientas de integración continua/entrega continua (CI/CD) para firma de código automatizada. Se proporcionan guías para CircleCI, GitHub Actions, Gitlab CI y Travis CI para firmar archivos .NET. Se proporcionan guías para Azure Pipeline, GitHub Actions, Gitlab CI y Travis CI para firmar archivos .vsix.

eSigner CKA (adaptador de clave en la nube) es una aplicación basada en Windows que utiliza la interfaz CNG (proveedor de servicios clave de KSP) para permitir que herramientas como certutil.exe y signtool.exe utilicen el API compatible con eSigner Cloud Signature Consortium (CSC)  para operaciones de firma de código empresarial. Se deben cumplir tres requisitos previos antes de poder realizar la firma de código basada en eSigner en herramientas de CI/CD:

SSL.com's EV Firma de código Los certificados ayudan a proteger su código de manipulaciones no autorizadas y compromisos con el más alto nivel de validación, y están disponibles por tan solo $ 249 por año. También puedes use su certificado de firma de código EV a escala en la nube usando eSigner.

HAZ TU PEDIDO

Flujos de trabajo de ejemplo de firma .vsix

Variables de entorno
Para códigos de muestra, puede consultar el SSL.com Repositorio Github en: https://github.com/SSLcom/esigner-sample

.DLL de código NET Firma de flujos de trabajo de ejemplo

Integración CircleCIIntegración de acciones de GitHubIntegración de CI de GitlabIntegración Travis CI

Flujo de trabajo de ejemplo de firma de DLL de código .NET

Preparar los componentes del flujo de trabajo

  1. Cree una carpeta .circleci en su editor. Incluya flujos de trabajo con la carpeta y cree un archivo yml como config.yml debajo de la carpeta.
  2. Configure la versión de CircleCI. El campo de versión está destinado a ser utilizado para emitir advertencias de desaprobación o cambios importantes.

    Versión: 2.1

  3. Los orbs son paquetes reutilizables de configuración de CircleCI que puede compartir entre proyectos, lo que le permite crear comandos, trabajos y ejecutores encapsulados y parametrizados que se pueden usar en varios proyectos. Para usar la herramienta signtool, debe ser Windows.

    orbes:

       ganar: circleci/windows@5.0.0

  4. Invocar trabajos a través de flujos de trabajo. Los flujos de trabajo organizan un conjunto de trabajos que se ejecutarán. 

    flujos de trabajo:

       # El nombre del flujo de trabajo.

       archivo de firma:

          # Dentro del flujo de trabajo, define los trabajos que desea ejecutar.

             trabajos:

                – archivo de firma

  5. Defina un trabajo para invocarlo más adelante en un flujo de trabajo.

    trabajos:

       archivo de firma:

  6. Especifique el entorno de ejecución. Debemos usar el ejecutor de Windows porque se necesita signtool.

    ejecutor:

       nombre: ganar/servidor-2019

       talla mediana

       variante: vs 2019

  7. Coloque el directorio de trabajo para el trabajo. 

    directorio_de_trabajo: /home/circleci/proyecto

  8. Agregar pasos al trabajo Ver: https://circleci.com/docs/2.0/configuration-reference/#steps  

    pasos:

  9. Consulte el código fuente para que el flujo de trabajo pueda acceder a él.

    - verificar

  10. Descargar y descomprimir eSignerCKA Setup

    - correr:

          nombre: Descargue y descomprima la configuración de eSignerCKA

          comando: |

             Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"

             Expandir-Archivar -Forzar eSigner_CKA_1.0.3.zip

             Eliminar artículo eSigner_CKA_1.0.3.zip

             Mover elemento -Destino “eSigner_CKA_1.0.3.exe” -Ruta “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”

  11. Instalar eSignerCKA

    - correr:

          nombre: Configurar eSignerCKA en modo silencioso

          comando: |

                mkdir -p “/inicio/círculo/proyecto/eSignerCKA”

                ./eSigner_CKA_1.0.3.exe /CURRENTUSER /MUY SILENCIOSO /SUPPRESSMSGBOXES /DIR=”/home/circleci/project/eSignerCKA” | Fuera-Nulo

  12. Establecer la información de la cuenta SSLcom en eSignerCKA

    - correr:

          nombre: Configuración de la información de la cuenta en eSignerCKA

          comando: |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe config -mode $env:MODE -user “$env:USERNAME” -pass “$env:PASSWORD” -totp “$env:TOTP_SECRET” -key “/home/circleci /proyecto/eSignerCKA/master.key” -r

  13. Descargar y cargar el certificado en el almacén de certificados de Windows

    - correr:

          nombre: Cargar certificado en la tienda de Windows

          comando: |

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe descargar

                /home/circleci/project/eSignerCKA/eSignerCKATool.exe cargar

  14. Seleccione el certificado de firma de código y obtenga la huella digital para firmar y firmar el artefacto con signtool

    - correr:

          nombre: seleccione el certificado de la tienda de Windows y firme el archivo de muestra con SignTool

          comando: |

                $CodeSigningCert = Obtener-ChildItem Cert:CurrentUserMy -CodeSigningCert | Seleccionar-Objeto-Primero 1

                & 'C:Archivos de programa (x86)Windows Kits10Certificación de aplicaciones Kitsigntool.exe' sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($CodeSigningCert.Thumbprint)” “HelloWorld. dll”

Flujo de trabajo de ejemplo de firma de DLL de código .NET

Preparar los componentes del flujo de trabajo

  1. Cree una carpeta .github/workflows en su editor. Incluya flujos de trabajo con la carpeta y cree un archivo sign.yml debajo de la carpeta.
  2. Nombre su proyecto y el tipo de flujo de trabajo involucrado 

    Nombre: Signo Artefacto

  3. Active este flujo de trabajo en un momento 

    en: empujar

  4. Crea una variable de entorno

    entorno:

     MASTER_KEY: maestro.clave

     RUTA_ARCHIVO_SIGNABLE: HelloWorld.dll

     INSTALL_DIR: C:UsersrunneradminSignerCKA

     MASTER_KEY_FILE: C:UsersrunneradminSignerCKAmaster.key

  5. Define los trabajos en tu editor

    trabajos:

     archivo de firma:

  6. Ejecutar trabajo en Windows Runnerse ejecuta en: windows-latest

  7. Crea un nombre. Cuando se ejecuta el flujo de trabajo, este es el nombre que se registra.

    nombre: Firmar archivo DLL con eSignerCKA

Resuma los pasos para el trabajo de Sign

  1. Consulte el código fuente para que el flujo de trabajo pueda acceder a él.

    – nombre: Repositorio de pago

       usos: acciones/checkout@v3

  2. Descargar y descomprimir eSignerCKA Setup

    – nombre: Descargar y descomprimir la configuración de eSignerCKA

      ejecutar: |

          Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip "https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3"

          Expandir-Archivar -Forzar eSigner_CKA_1.0.3.zip

          Eliminar artículo eSigner_CKA_1.0.3.zip

          Mover elemento -Destino “eSigner_CKA_1.0.3.exe” -Ruta “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”
  3. Instalar eSignerCKA

    – nombre: Configurar eSignerCKA en modo silencioso

      ejecutar: |

          Nuevo elemento -Directorio de tipo de elemento -Fuerza -Ruta ${{ env.INSTALL_DIR }}

          ./eSigner_CKA_1.0.3.exe /CURRENTUSER /MUY SILENCIOSO /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Fuera-Nulo

  4. Establecer la información de la cuenta de SSL.com en eSignerCKA

    – nombre: Información de la cuenta de configuración en eSignerCKA

      ejecutar: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe configuración -mode “${{ secrets.MODE }}” -user “${{ secrets.USERNAME }}”

         -pass “${{ secretos.CONTRASEÑA }}” -totp “${{ secretos.TOTP_SECRET }}” -key “${{ env.MASTER_KEY_FILE }}” -r

  5. Descargar y cargar el certificado en el almacén de certificados de Windows

    – nombre: Cargar certificado en la tienda de Windows

      ejecutar: |

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe descarga

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe cargar
  6. Seleccione el certificado de firma de código y obtenga la huella digital para firmar

    – nombre: seleccione el certificado de la tienda de Windows

      ejecutar: |

          $CodeSigningCert = Obtener-ChildItem Cert:CurrentUserMy -CodeSigningCert | Seleccionar-Objeto-Primero 1

          echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV
  7. Firmar artefacto con signtool

    – nombre: Firmar archivo de muestra con SignTool

      ejecutar: |

          & 'C:/Archivos de programa (x86)/Kits de Windows/10/bin/10.0.17763.0/x86/signtool.exe' sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 ${{ env.THUMBPRINT }} ${{ env.SIGNABLE_FILE_PATH }}

Flujo de trabajo de ejemplo de firma de DLL de código .NET

Definir los componentes del flujo de trabajo

  1. CCree un archivo yml como .gitlab-ci.yml debajo de la carpeta.
  2. Se utiliza para seleccionar corredores de la lista de corredores disponibles. Un ejecutor debe tener todas las etiquetas enumeradas aquí para ejecutar el trabajo.

    .windows_runners:

          tags:

                – ventanas compartidas

                – ventanas

                – ventanas-1809

  3. Agrupa los trabajos en etapas. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.

    etapas:

          - señal

  4. A continuación se muestra la definición de su trabajo para firmar el archivo. Defina en qué etapa se ejecutará el trabajo.

    archivo de firma:

         etapa: firmar

  5. El nombre de uno o más trabajos de los que heredar la configuración.

    extiende:

         – .windows_runners
  6. Escriba el script para firmar el archivo.

    script:

    # Descargue y descomprima la configuración de eSignerCKA

       – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip “https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3″'

       – powershell.exe -ExecutionPolicy Bypass -Command 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

       – powershell.exe -ExecutionPolicy Bypass -Command 'Remove-Item eSigner_CKA_1.0.3.zip'

       – powershell.exe -ExecutionPolicy Bypass -Comando 'Mover-elemento -Destino “eSigner_CKA_1.0.3.exe” -Ruta “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”'


    # Configurar eSignerCKA en modo silencioso

    – powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Usersgitlab_runnerDesktopeSignerCKA”'


    # Comprobar el directorio de instalación

    – powershell.exe -ExecutionPolicy Bypass -Comando 'dir C:Usersgitlab_runnerDesktopeSignerCKA'


    # Configurar información de cuenta en eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe config -mode ${MODE}

         -usuario “${USERNAME}” -pass “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:Usersgitlab_runnerAppDataRoamingeSignerCKAmaster.key” -r'


    # Descargar certificado en la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe descargar'


    # Cargar certificado en la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe carga'


       # Verificar directorio de datos

       – powershell.exe -ExecutionPolicy Bypass -Comando 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKA'


       # Comprobar el directorio de datos de configuración

       – powershell.exe -ExecutionPolicy Bypass -Comando 'dir C:Usersgitlab_runnerAppDataRoamingeSignerCKAConfig'


    # Seleccione el certificado de la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Seleccionar-Objeto -Primero 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'

    # Huella digital del certificado de depuración

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $huella digital'


    # Firmar archivo de muestra con SignTool

    – powershell.exe -ExecutionPolicy Bypass -Comando “Establecer-Variable -Nombre Huella digital -Valor (Get-Content .Thumbprint);

         'C:Archivos de programa (x86)Windows Kits10bin10.0.17763.0x86signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'”

Flujo de trabajo de ejemplo de firma de DLL de código .NET

Definir los componentes del flujo de trabajo

  1. Cree un archivo yml como .travis.yml en la carpeta raíz.
  2. Coloque la arquitectura de la CPU para ejecutar el trabajo.

    arco: amd64

  3. Idioma predeterminado para ejecutar trabajos en Travis CI

    idioma: csharp

  4. El sistema operativo para ejecutar el trabajo en

    sistema operativo: ventanas

  5. Especifique el orden de las etapas. Todos los trabajos en una etapa deben completarse antes de que se ejecute la siguiente etapa.

    etapas:

      - señal

  6. Definir la etapa de construcción

    trabajos:

      incluyen:

         – etapa: signo

  7. el nombre del trabajo

    nombre: firmar-archivo
  8. El sistema operativo para ejecutar el trabajo

    sistema operativo: ventanas
  9. Idioma actual para ejecutar trabajos en Travis CI

    idioma: c
  10. Escriba el script Before para ejecutarlo antes de compilar el proyecto

    antes_script:

        – powershell.exe -ExecutionPolicy Bypass -Comando 'Nuevo-elemento -Directorio de tipo de elemento -Force -Ruta C:Userstravisbuilddiseñador-muestraFirmante electrónicoCKASSLcom'

  11. Escriba el script para construir el proyecto.

    script:

    # Descargue y descomprima la configuración de eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'Invoke-WebRequest -OutFile eSigner_CKA_1.0.3.zip “https://www.ssl.com/download/ssl-com-esigner-cka-1-0-3″'

    – powershell.exe -ExecutionPolicy Bypass -Command 'Expand-Archive -Force eSigner_CKA_1.0.3.zip'

    – powershell.exe -ExecutionPolicy Bypass -Command 'Remove-Item eSigner_CKA_1.0.3.zip'

    – powershell.exe -ExecutionPolicy Bypass -Comando 'Mover-elemento -Destino “eSigner_CKA_1.0.3.exe” -Ruta “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”'


    # Configurar eSignerCKA en modo silencioso

    – powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Userstravisbuilddiseñador-muestraeSignerCKASSLcom” | Fuera-Nulo'


    # Comprobar el directorio de instalación

    – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Userstravisbuilddiseñador-muestraFirmante electrónicoCKASSLcom'


    # Configurar información de cuenta en eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Userstravisbuilddiseñador-muestraeSignerCKASSLcomeSignerCKATool.exe configuración -modo ${MODE} -usuario “${USERNAME}”

       -pasar “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:Userstravisbuilddiseñador-muestraeSignerCKASSLcommaster.key” -r'


    # Descargar certificado en la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Userstravisbuilddiseñador-muestraeSignerCKASSLcomeSignerCKATool.exe descargar'


    # Cargar certificado en la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Comando 'C:Userstravisbuilddiseñador-muestraeSignerCKASSLcomeSignerCKATool.exe carga'


    # Seleccione el certificado de la tienda de Windows

    – powershell.exe -ExecutionPolicy Bypass -Command '$CodeSigningCert = Get-ChildItem Cert:CurrentUserMy -CodeSigningCert | Seleccionar-Objeto -Primero 1; echo $CodeSigningCert.Thumbprint > .Thumbprint'


    # Huella digital del certificado de depuración

    – powershell.exe -ExecutionPolicy Bypass -Command 'Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); echo $huella digital'


    # Firmar archivo de muestra con SignTool

    – powershell.exe -ExecutionPolicy Bypass -Comando “Establecer-Variable -Nombre Huella digital -Valor (Get-Content .Thumbprint); 'C:Archivos de programa (x86)Windows Kits10binx64signtool.exe sign /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'”

¿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.

Salir de la versión móvil