Frequently Asked Questions

Other Languages: Dansk Deutsch Ελληνικά English Español Suomi Français Italiano Bokmål Nederlands Polski Português - Portugal Русский Svenska Türkçe Українська Chinese Taiwan Chinese

Assinatura De Código Java: Como Gerar Uma Solicitação De Assinatura De Certificado (CSR)

Print this Article
Last Updated: February 2, 2015 12:39 PM

Desde janeiro de 2014, todos os aplicativos Java executados em navegadores web exigem certificados de assinatura de código. Após adquirir um certificado de assinatura de código, você precisa assinar seu código Java.

Várias ferramentas precisam empacotar e assinar códigos em Java, incluindo o keytool, o jar e o jarsigner. Começando pelo JDK 5.0, o jarsigner pode gerar assinaturas com registro de data e hora, o que permite validar que o arquivo JAR foi assinado durante o período de validade do certificado de assinatura de código.

Abordagem 1 - Solicitar um novo certificado de assinatura de código

  1. Se necessário, baixe o JDK pelo seguinte link:
    http://java.sun.com/javase/downloads/index.jsp
  2. Solicite um certificado de assinatura de código da Starfield Technologies.
    • Crie um armazenamento de chaves. Um armazenamento de chaves é onde os certificados são armazenados. Este exemplo cria um armazenamento de chaves personalizado chamado "codesignstore" a ser usado apenas para um certificado de assinatura de código e sua chave privada associada.
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass
    • Crie uma solicitação para assinatura de certificado (CSR) Uma chave privada será criada e armazenada no armazenamento de chaves chamado "codesignstore". Será criado um arquivo CSR de nome "mycsr.pem" no diretório atual.
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • Adquira um certificado de assinatura do seu código.
    • Clique no crédito do certificado de assinatura de código adquirido em "Minha conta". Isso o levará ao aplicativo Gerente de conta dos Serviços de certificados protegidos Starfield. O método de geração de CSRs deve ser definido como manual no formulário de solicitação para o campo CSR ficar visível.
    • Envie a CSR como parte da solicitação de assinatura de código.
      • Após abrir o arquivo "mycsr.pem" em um editor, copie e cole todo o conteúdo do arquivo (incluindo as linhas que contêm "BEGIN NEW CERTIFICATE REQUEST" e "END NEW CERTIFICATE REQUEST") na devida seção do formulário de solicitação de assinatura de código.
    • As informações da conta que você enviar serão confirmadas. Se necessário, a autoridade de registro (RA) pode entrar em contato com você para pedir informações adicionais.
    • Assim que o certificado de assinatura de código for emitido, você receberá uma mensagem de email com um link para baixar o arquivo do certificado e quaisquer outros certificados intermediários.
  3. Instale o certificado de assinatura de código, no mesmo armazenamento de chaves criado anteriormente. O seguinte exemplo supõe que o arquivo de certificado de assinatura de código terá o nome "mycert.cer". O arquivo de certificado deverá estar na pasta atual e no formato PKCS#7.
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. Assine o arquivo JAR usando o jarsigner com o certificado de assinatura de código e a chave privada
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • "codesignstore" é um alias do armazenamento que contém o certificado de assinatura de código, a chave privada e todos os outros certificados da cadeia.
    • O nome do arquivo de entrada não assinado é "myapp.jar" e será substituído pela versão assinada do arquivo. Use a opção de linha de comando "-signedjar" para especificar nomes de arquivos de entrada e saída separados.
    • "codesigncert" é um alias da chave privada do armazenamento.
    O seguinte exemplo adicionar opções de registro de data e hora para o mesmo exemplo apresentado acima.
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. Verifique o arquivo JAR assinado
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribua o código

Abordagem 2 - Use o arquivo PKCS#12 existente, contendo tanto o certificado de assinatura de código quanto a chave privada

  1. Se necessário, baixe o JDK pelo seguinte link:
    http://java.sun.com/javase/downloads/index.jsp
  2. Confirme se o arquivo PFX/P12 pode ser usado com o jarsigner. Execute o seguinte comando. O alias necessário para a etapa 5 será mostrado próximo ao topo do resultado:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. Crie um arquivo JAR dos arquivos de classe Java usando a ferramenta de jar:
    jar cvf myapp.jar myapp.class
  4. Assine o arquivo JAR usando o jarsigner com o certificado de assinatura de código e a chave privada:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "nomealias"
    • "mycert.pfx" é o caminho completo para o arquivo PFX/P12, que contém o certificado de assinatura de código e a chave privada. O arquivo também deve incluir todos os certificados intermediários.
    • O "nomealias" pode ser visto no resultado da etapa 2, próximo ao topo. Se o arquivo PFX/P12 foi exportado do Windows, o nome de alias será um GUID.
    • Quando solicitado, insira a senha associada à chave privada do arquivo PFX/P12. Você também pode incluir a opção "-storepass" para especificar a senha pela linha de comando.
    • O nome do arquivo de entrada não assinado é "myapp.jar" e será substituído pela versão assinada do arquivo. Use a opção de linha de comando "-signedjar" para especificar nomes de arquivos de entrada e saída separados.
    O seguinte exemplo adicionar opções de registro de data e hora para o mesmo exemplo apresentado acima:
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "nomealias"
  5. Verifique o arquivo JAR assinado
    jarsigner -verify -verbose -certs myapp.jar
  6. Distribua o código

Links