Uso
- nome: Artefato de sinal com CodeSignTool
usa: sslcom/actions-codedesigner@develop
com:
- Comandos do CodeSignTool:
- get_credential_ids
: saída da lista de IDs de credenciais de eSigner associados a um usuário.
- credential_info
: Chave de saída e informações de certificado relacionadas a um ID de credencial.
- sign
: Objeto de código de assinatura e carimbo de data / hora.
- batch_sign
: Assine e registre a data e hora de vários objetos de código com uma OTP.
- hash
: Pré-computar hash(es) para uso posterior com o comando batch_hash_sign.
- batch_sign_hash
: Assina o(s) hash(es) pré-calculado(s) com o comando hash.
comando: assinar
- Nome de usuário da conta SSL.com.
username: ${{secrets.ES_USERNAME}}
- Senha da conta SSL.com.
password: ${{secrets.ES_PASSWORD}}
- ID da credencial para assinar o certificado.
credential_id: ${{secrets.CREDENTIAL_ID}}
- Segredo OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
- Caminho do objeto de código a ser assinado.
file_path: ${GITHUB_WORKSPACE}/test/src/build/HelloWorld.jar
- Diretório onde o(s) objeto(s) de código assinado(s) será(ão) gravado(s).
output_path: ${GITHUB_WORKSPACE}/artifacts
entradas
- nome de usuário: nome de usuário da conta SSL.com. (Requeridos)
- senha: Senha da conta SSL.com (obrigatório)
- credencial_id: ID da credencial para assinatura do certificado. Se credential_id for omitido e o usuário tiver apenas um certificado de assinatura de código eSigner, o CodeSignTool usará como padrão. Se o usuário tiver mais de um certificado de assinatura de código, esse parâmetro é obrigatório. (Requeridos)
- totp_secret: OAuth TOTP Secret. Você pode acessar informações detalhadas sobre https://www.ssl.com/how-to/automate-esigner-ev-code-signing (Obrigatório)
- caminho de arquivo: Caminho do objeto de código a ser assinado. (Requeridos)
- caminho de saída: Diretório onde o(s) objeto(s) de código assinado(s) será(ão) escrito(s). Se output_path for omitido, o arquivo especificado em -file_path será substituído pelo arquivo assinado.
Fluxo de trabalho de exemplo de assinatura JAR de código Java (Maven)
Preparar os componentes do fluxo de trabalho
- Crie uma pasta do Github no seu editor. Inclua fluxos de trabalho com a pasta e crie um arquivo yml na pasta.
- Nomeie seu projeto e o tipo de fluxo de trabalho envolvido
Nome: Maven Build and Sign
- Acione este fluxo de trabalho em um push
em: empurrar
- Crie uma variável de ambiente
- As variáveis de ambiente são usadas para tornar as amostras mais legíveis. Na captura de tela acima do fluxo de trabalho de exemplo, PROJECT_NAME, PROJECT_VERSION e MAVEN_VERSION foram opcionalmente omitidos. A assinatura ainda pode prosseguir mesmo com essas omissões.
env: PROJECT_NAME: HelloWorld PROJECT_VERSION: 0.0.1 MAVEN_VERSION: 3.8.5 JAVA_VERSION: 17
- Defina os trabalhos em seu editor
jobs: build-and-sign-jar:
- Executar trabalho no Ubuntu Runner
executado: ubuntu-latest
- Crie um nome. Quando o fluxo de trabalho é executado, esse é o nome registrado.
nome: CodeSigner em Java com Maven
Descreva as etapas para verificar o código-fonte, configurar o ambiente Java e Maven e criar o Artifact Directory.
1) Confira o código-fonte para que o fluxo de trabalho possa acessá-lo.
passos: - usa: actions/checkout@v2
2) Configure o ambiente Java e Maven para o fluxo de trabalho usar.
- nome: Instale o Maven e o Java usa: s4u/setup-maven-action@v1.3.1 com: java-version: '${{env.JAVA_VERSION}}' maven-version: '${{env.MAVEN_VERSION}}'
3) Crie um diretório de artefatos para armazenar arquivos de artefatos assinados e não assinados
- nome: Criar shell de diretório: bash run: | mkdir ${GITHUB_WORKSPACE}/artifacts mkdir ${GITHUB_WORKSPACE}/packages
4) Construa um projeto ou solução maven e todas as suas dependências.
Após a criação do arquivo jar, copie para a pasta 'packages' para assinatura
- Neste fluxo de trabalho de exemplo de assinatura por escrito, vários tipos de projeto foram criados. É por isso que arquivos de diferentes tipos de projeto foram mantidos criando subpastas. Uma subpasta chamada 'java' foi criada para projetos Java. Na captura de tela de demonstração acima, não havia necessidade de criar uma subpasta chamada 'java', então isso não foi incluído no script.
- name: shell de construção do projeto Java: 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}}. jarra
Descreva as etapas para os trabalhos de Assinar e carregar
- O trabalho Assinar é a etapa em que os arquivos JAR (artefato) criados serão assinados com o CodeSignTool.
- name: Assinar Artefato usa: sslcom/actions-codesigner@develop com:
Objeto de código de assinatura e carimbo de data/hora.
comando: sinal
Nome de usuário da conta SSL.com.
nome de usuário: ${{secrets.ES_USERNAME}}
Senha da conta SSL.com.
senha: ${{secrets.ES_PASSWORD}}
ID da credencial para assinar o certificado.
id_da_credencial: ${{secrets.CREDENTIAL_ID}}
Segredo OAuth TOTP (https://www.ssl.com/how-to/automate-esigner-ev-code-signing)
totp_secret: ${{secrets.ES_TOTP_SECRET}}
Caminho do objeto de código a ser assinado. (DLL, JAR, EXE, arquivos MSI vb…)
caminho_do_arquivo: ${GITHUB_WORKSPACE}/packages/${{env.PROJECT_NAME}}.jar
Diretório onde o(s) objeto(s) de código assinado(s) será(ão) gravado(s).
caminho_de_saída: ${GITHUB_WORKSPACE}/artefatos
- O trabalho de upload é a etapa em que os artefatos de seu fluxo de trabalho serão carregados, permitindo que você compartilhe dados entre trabalhos e armazene dados assim que um fluxo de trabalho for concluído
- name: Carregar arquivos assinados usa: actions/upload-artifact@v2 com: name: ${{env.PROJECT_NAME}}.jar path: ./artifacts/${{env.PROJECT_NAME}}.jar
Obtenha um uploader de artefato de compilação do Github Marketplace
Revise seu script de codificação
Em geral, o script de codificação para os trabalhos de buld, sign e upload deve se parecer com a imagem abaixo. Certifique-se de corrigir quaisquer erros, como ortografia incorreta ou quebras de linha incorretas no script, para que o processo de assinatura seja executado sem problemas.
Defina suas variáveis de ambiente
Vá para o local do seu projeto na sua conta do Github. Clique no Opções aba. Clique no Novo segredo do repositório botão para colocar os valores para cada variável de ambiente necessária para assinar seu código.
Crie um novo repositório na linha de comando
Vá para o local do seu projeto no Github e copie cada componente do comando push.
Empurre o projeto
Inclua cada linha de comando push em seu editor de código. Após a conclusão, o código será enviado automaticamente no Github.
Aguarde até que o artefato seja assinado com eSigner CodeSignTool
Carregar o arquivo assinado
Clique no arquivo assinado para carregá-lo.
Exemplo de pipeline de ações do Github
Confira o exemplo de pipeline do Github Actions que criamos em github.com/SSLcom/codesigner-github-sample
Outros guias de integração de assinatura remota de CI/CD
- Integração de assinatura de código em nuvem com CircleCI
- Integração do Cloud Code Signing com GitLab CI
- Integração do Cloud Code Signing com Jenkins CI
- Integração do Cloud Code Signing com o Travis CI
- Integração de assinatura de código em nuvem com Azure DevOps
- Automação de assinatura de código em nuvem com serviços de CI/CD
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.