Ícone do site SSL.com

Como integrar o eSigner CKA com ferramentas de CI/CD para assinatura de código automatizada

As duas tabelas abaixo demonstram como integrar o eSigner CKA com Ferramentas de Integração Contínua/Entrega Contínua (CI/CD) para assinatura de código automatizada. Guias para CircleCI, GitHub Actions, Gitlab CI e Travis CI são fornecidos para assinatura Arquivos .NET. Guias para Azure Pipeline, GitHub Actions, Gitlab CI e Travis CI são fornecidos para assinatura Arquivos .vsix.

eSigner CKA (Adaptador de chave de nuvem) é um aplicativo baseado no Windows que usa a interface CNG (KSP Key Service Provider) para permitir que ferramentas como certutil.exe e signtool.exe usem o API compatível com eSigner Cloud Signature Consortium (CSC)  para operações de assinatura de código empresarial. Três pré-requisitos devem ser atendidos antes de poder conduzir assinatura de código baseada em eSigner em ferramentas de CI/CD:

SSL.com's EV Assinatura de código certificados ajudam a proteger seu código contra adulteração e comprometimento não autorizados com o mais alto nível de validação e estão disponíveis por apenas $ 249 por ano. Você também pode use seu certificado de assinatura de código EV em escala na nuvem usando eSigner.

PEÇA AGORA

Fluxos de trabalho de exemplo de assinatura .vsix

variáveis ​​ambientais
Para códigos de exemplo, você pode consultar o SSL.com Repositório do Github em: https://github.com/SSLcom/esigner-sample

.DLL de código NET Assinando fluxos de trabalho de exemplo

Integração Circle CIIntegração de ações do GitHubIntegração do Gitlab CIIntegração com Travis CI

Fluxo de trabalho de exemplo de assinatura de DLL de código .NET

Preparar os componentes do fluxo de trabalho

  1. Crie uma pasta .circleci em seu editor. Inclua fluxos de trabalho com a pasta e crie um arquivo yml como config.yml na pasta.
  2. Defina a versão do CircleCI. O campo de versão destina-se a ser usado para emitir avisos de descontinuação ou alterações de interrupção.

    version: 2.1

  3. Orbs são pacotes reutilizáveis ​​de configuração do CircleCI que você pode compartilhar entre projetos, permitindo criar comandos encapsulados e parametrizados, trabalhos e executores que podem ser usados ​​em vários projetos. Para usar a ferramenta signtool, ela precisa ser windows.

    orbes:

       vitória: circleci/windows@5.0.0

  4. Invoque trabalhos por meio de fluxos de trabalho. Os fluxos de trabalho orquestram um conjunto de tarefas a serem executadas. 

    fluxos de trabalho:

       # O nome do fluxo de trabalho.

       arquivo de assinatura:

          # Dentro do fluxo de trabalho, você define os trabalhos que deseja executar.

             empregos:

                - arquivo de assinatura

  5. Defina um trabalho a ser invocado posteriormente em um fluxo de trabalho.

    empregos:

       arquivo de assinatura:

  6. Especifique o ambiente de execução. Devemos usar o Windows Executor porque o signtool é necessário.

    executor:

       nome: win/server-2019

       tamanho médio

       variante: vs 2019

  7. Coloque o diretório de trabalho para o trabalho 

    diretório_trabalho: /home/circleci/project

  8. Adicionar etapas ao trabalho Veja: https://circleci.com/docs/2.0/configuration-reference/#steps  

    passos:

  9. Confira o código-fonte para que o fluxo de trabalho possa acessá-lo.

    - Confira

  10. Baixe e descompacte a configuração do eSignerCKA

    - corre:

          nome: Baixe e descompacte o eSignerCKA Setup

          comando: |

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

             Expandir-Arquivar -Forçar eSigner_CKA_1.0.3.zip

             Remover item eSigner_CKA_1.0.3.zip

             Mover-Item -Destino “eSigner_CKA_1.0.3.exe” -Caminho “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”

  11. Instalar eSignerCKA

    - corre:

          nome: Configurar eSignerCKA no modo silencioso

          comando: |

                mkdir -p “/home/circleci/project/eSignerCKA”

                ./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”/home/circleci/project/eSignerCKA” | Fora-Nulo

  12. Definir informações da conta SSLcom no eSignerCKA

    - corre:

          nome: Configurar informações da conta no 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 /project/eSignerCKA/master.key” -r

  13. Descarregue e carregue o certificado no armazenamento de certificados do Windows

    - corre:

          nome: Carregar certificado na Windows Store

          comando: |

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

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

  14. Selecione o certificado de assinatura de código e obtenha a impressão digital para assinar e assinar o artefato com a ferramenta de assinatura

    - corre:

          nome: Selecione o certificado da Windows Store e assine o arquivo de amostra com o SignTool

          comando: |

                $CodeSigningCert = Certificado Get-ChildItem:CurrentUserMy -CodeSigningCert | Selecionar-Objeto -Primeiro 1

                & 'C:Arquivos de programas (x86)Windows Kits10App Certification Kitsigntool.exe' sinal /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 “$($CodeSigningCert.Thumbprint)” “HelloWorld. dll”

Fluxo de trabalho de exemplo de assinatura de DLL de código .NET

Preparar os componentes do fluxo de trabalho

  1. Crie uma pasta .github/workflows em seu editor. Inclua fluxos de trabalho com a pasta e crie um arquivo sign.yml na pasta.
  2. Nomeie seu projeto e o tipo de fluxo de trabalho envolvido 

    Nome: Assinar Artefato

  3. Acione este fluxo de trabalho em um push 

    em: empurrar

  4. Crie uma variável de ambiente

    ambiente:

     MASTER_KEY: master.key

     SIGNABLE_FILE_PATH: HelloWorld.dll

     INSTALL_DIR: C:UsersrunneradmineSignerCKA

     MASTER_KEY_FILE: C:UsersrunneradmineSignerCKAmaster.key

  5. Defina os trabalhos em seu editor

    empregos:

     arquivo de assinatura:

  6. Executar trabalho no Windows Runnerrun-on: windows-latest

  7. Crie um nome. Quando o fluxo de trabalho é executado, esse é o nome registrado.

    nome: Assinar arquivo DLL com eSignerCKA

Descreva as etapas para o trabalho de assinatura

  1. Confira o código-fonte para que o fluxo de trabalho possa acessá-lo.

    – nome: Repositório de Checkout

       usa: ações/checkout@v3

  2. Baixe e descompacte a configuração do eSignerCKA

    – nome: Baixe e descompacte o eSignerCKA Setup

      executar: |

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

          Expandir-Arquivar -Forçar eSigner_CKA_1.0.3.zip

          Remover item eSigner_CKA_1.0.3.zip

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

    – nome: Configure o eSignerCKA no modo silencioso

      executar: |

          Novo-Item -ItemType Diretório -Force -Path ${{ env.INSTALL_DIR }}

          ./eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”${{ env.INSTALL_DIR }}” | Fora-Nulo

  4. Definir informações da conta SSL.com no eSignerCKA

    – nome: Configurar informações da conta no eSignerCKA

      executar: |

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

         -pass “${{ secrets.PASSWORD }}” -totp “${{ secrets.TOTP_SECRET }}” -key “${{ env.MASTER_KEY_FILE }}” -r

  5. Descarregue e carregue o certificado no armazenamento de certificados do Windows

    – nome: Carregar certificado na Windows Store

      executar: |

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

          ${{ env.INSTALL_DIR }}/eSignerCKATool.exe carregar
  6. Selecione o certificado de assinatura de código e obtenha impressão digital para assinatura

    – nome: Selecione o certificado da Windows Store

      executar: |

          $CodeSigningCert = Certificado Get-ChildItem:CurrentUserMy -CodeSigningCert | Selecionar-Objeto -Primeiro 1

          echo “THUMBPRINT=$($CodeSigningCert.Thumbprint)” >> $env:GITHUB_ENV
  7. Artefato de assinatura com signtool

    – nome: Arquivo de exemplo de assinatura com SignTool

      executar: |

          & 'C:/Program Files (x86)/Windows Kits/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 }}

Fluxo de trabalho de exemplo de assinatura de DLL de código .NET

Defina os componentes do fluxo de trabalho

  1. CCrie um arquivo yml como .gitlab-ci.yml na pasta.
  2. Usado para selecionar corredores da lista de corredores disponíveis. Um executor deve ter todas as tags listadas aqui para executar o trabalho.

    .windows_runners:

          tags:

                – janelas compartilhadas

                - janelas

                – janelas-1809

  3. Agrupa trabalhos em estágios. Todos os trabalhos em um estágio devem ser concluídos antes que o próximo estágio seja executado.

    estágios:

          - sinal

  4. Abaixo está a definição do seu trabalho para assinar o arquivo. Defina em que estágio o trabalho será executado.

    arquivo de assinatura:

         estágio: sinal

  5. O nome de um ou mais trabalhos dos quais herdar a configuração.

    estende:

         – .windows_runners
  6. Escreva o script para assinar o arquivo.

    script:

    # Baixe e descompacte a configuração do 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 'Move-Item -Destino “eSigner_CKA_1.0.3.exe” -Caminho “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”'


    # Configure o eSignerCKA no modo silencioso

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


    # Verifique o diretório de instalação

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


    # Configurar informações da conta no eSignerCKA

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

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


    # Descarregue o certificado na Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Usersgitlab_runnerDesktopeSignerCKAeSignerCKATool.exe descarregar'


    # Carregue o certificado na Windows Store

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


       # Verifique o diretório de dados

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


       # Verifique o diretório de dados de configuração

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


    # Selecione o certificado da Windows Store

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

    # Impressão digital do certificado de depuração

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


    # Assinar arquivo de amostra com SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command “Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint);

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

Fluxo de trabalho de exemplo de assinatura de DLL de código .NET

Defina os componentes do fluxo de trabalho

  1. Crie um arquivo yml como .travis.yml na pasta raiz.
  2. Coloque a arquitetura da CPU para executar o trabalho.

    arco: amd64

  3. Idioma padrão para executar trabalhos no Travis CI

    idioma: csharp

  4. O sistema operacional no qual executar o trabalho

    os: janelas

  5. Especifique a ordem das etapas. Todos os trabalhos em um estágio devem ser concluídos antes que o próximo estágio seja executado.

    estágios:

      - sinal

  6. Defina o estágio de construção

    empregos:

      incluem:

         – palco: sinal

  7. O nome do trabalho

    nome: arquivo de assinatura
  8. O sistema operacional no qual executar o trabalho

    os: janelas
  9. Idioma atual para executar trabalhos no Travis CI

    idioma: c
  10. Escreva o script Before para ser executado antes de construir o projeto

    script_antes:

        – powershell.exe -ExecutionPolicy Bypass -Command 'New-Item -ItemType Directory -Force -Path C:Userstravisbuildamostra de esignereSignerCKASSLcom'

  11. Escreva o script para construir o projeto.

    script:

    # Baixe e descompacte a configuração do 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 'Move-Item -Destino “eSigner_CKA_1.0.3.exe” -Caminho “eSigner_CKA_1.0.3SSL.COM eSigner CKA_1.0.3.exe”'


    # Configure o eSignerCKA no modo silencioso

    – powershell.exe -ExecutionPolicy Bypass -Command './eSigner_CKA_1.0.3.exe /CURRENTUSER /VERYSILENT /SUPPRESSMSGBOXES /DIR=”C:Userstravisbuildamostra de esignereSignerCKASSLcom” | Fora-Nulo'


    # Verifique o diretório de instalação

    – powershell.exe -ExecutionPolicy Bypass -Command 'dir C:Userstravisbuildamostra de esignereSignerCKASSLcom'


    # Configurar informações da conta no eSignerCKA

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Userstravisbuildamostra de esignereSignerCKASSLcomeSignerCKATool.exe config -mode ${MODE} -user “${NOME DE USUÁRIO}”

       -pass “${PASSWORD}” -totp “${TOTP_SECRET}” -key “C:Userstravisbuildamostra de esignereSignerCKASSLcommaster.key” -r'


    # Descarregue o certificado na Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Userstravisbuildamostra de esignereSignerCKASSLcomeSignerCKATool.exe descarregar'


    # Carregue o certificado na Windows Store

    – powershell.exe -ExecutionPolicy Bypass -Command 'C:Userstravisbuildamostra de esignereSignerCKASSLcomeSignerCKATool.exe carregar'


    # Selecione o certificado da Windows Store

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


    # Impressão digital do certificado de depuração

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


    # Assinar arquivo de amostra com SignTool

    – powershell.exe -ExecutionPolicy Bypass -Command “Set-Variable -Name Thumbprint -Value (Get-Content .Thumbprint); 'C: Arquivos de programas (x86) Windows Kits10binx64signtool.exe sinal /debug /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 $Thumbprint HelloWorld.dll'”

Precisa de soluções personalizadas? 

Com nosso conhecimento especializado e equipe de suporte cinco estrelas, estamos prontos e dispostos a trabalhar com você em soluções personalizadas ou descontos em assinaturas de alto volume de nível empresarial. Preencha o formulário abaixo e entraremos em contato.

Sair da versão móvel