Assinatura De Código Java: Gerar Um CSR
Print this Article
Last Updated:
February 2, 2015 12:39 PM
A partir de janeiro de 2014, todas as aplicações Java em execução em navegadores da internet exigem certificados de assinatura de código. Depois de comprar um certificado de assinatura de código, tem de assinar o seu código Java.
São necessárias várias ferramentas para compactar e assinar código Java, incluindo keytool, jar e jarsigner. Começando pelo JDK 5.0, o jarsigner pode gerar assinaturas que incluem um carimbo de data/hora, permitindo validar que o ficheiro JAR foi assinado quando o certificado de assinatura de código ainda era válido.
Abordagem 1 - Pedir um novo certificado de assinatura de código
- Se necessário, transfira o JDK da hiperligação seguinte:
http://java.sun.com/javase/downloads/index.jsp - Peça um certificado de assinatura de código da Starfield Technologies.
- Crie um novo armazenamento de chaves. Um armazenamento de chaves é um local onde os certificados de segurança são armazenados. Este exemplo irá criar um armazenamento de chaves personalizado nomeado "codesignstore" a ser utilizado apenas para um certificado de assinatura de código e a 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 - Criar um pedido de assinatura de certificado (CSR) Será criada e armazenada uma chave privada no armazenamento de chaves nomeado "codesignstore". Um ficheiro CSR nomeado "mycsr.pem" será criado no diretório de trabalho atual.
keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
- Compre um certificado de assinatura de código.
- Clique no crédito do certificado de assinatura de código comprado em "A minha conta". Isto leva-o para a aplicação da internet de gestão da conta dos serviços de certificados de segurança Starfield. O método de geração do CSR deve ser configurado como manual no formulário de pedido para que o campo CSR seja visível.
- Submeta o CSR como parte do pedido de assinatura de código.
- Depois de abrir o ficheiro "mycsr.pem" num editor, copie e cole todo o conteúdo do ficheiro (incluindo as linhas que contêm "BEGIN NEW CERTIFICATE REQUEST" e "END NEW CERTIFICATE REQUEST") na secção apropriada do formulário de pedido de assinatura de código.
- As informações da empresa fornecidas serão verificadas. A autoridade de registo (AR) pode entrar em contacto consigo para fornecer informações adicionais, se necessário.
- Após a emissão do certificado de assinatura de código, irá receber uma mensagem de correio eletrónico com uma hiperligação para transferir o ficheiro do certificado e quaisquer certificados intermédios associados.
- Crie um novo armazenamento de chaves. Um armazenamento de chaves é um local onde os certificados de segurança são armazenados. Este exemplo irá criar um armazenamento de chaves personalizado nomeado "codesignstore" a ser utilizado apenas para um certificado de assinatura de código e a chave privada associada.
- Instale o certificado de assinatura de código no mesmo armazenamento de chaves criado anteriormente. O exemplo seguinte prevê que o ficheiro de certificado de assinatura de código seja nomeado "mycert.cer". Prevê-se que o ficheiro do certificado esteja na pasta de trabalho atual e no formato PKCS#7.
keytool -import -trustcacerts -keystore codesignstore -storepass
-alias codesigncert -file mycert.cer - Assine o ficheiro JAR com o jarsigner, utilizando o certificado de assinatura de código e a chave privada
jarsigner -verbose -keystore codesignstore -storepass
-keypass myapp.jar codesigncert - 'codesignstore' é um nome alternativo ao armazenamento de chaves que contém o certificado de assinatura de código, a chave privada e todos os outros certificados na cadeia.
- O nome de ficheiro de entrada não assinado é "myapp.jar" e será substituído pela versão assinada do ficheiro. Utilize a opção da linha de comandos "-signedjar" para especificar nomes de ficheiro de entrada e de saída separados.
- 'codesigncert' é um nome alternativo à chave privada no armazenamento de chaves.
jarsigner -verbose -keystore codesignstore -storepass-keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert - Verifique o ficheiro JAR assinado
jarsigner -verify -verbose -certs myapp.jar
- Distribuir o código
Abordagem 2 - Utilizar o ficheiro PKCS#12 existente, contendo o certificado de assinatura de código e a chave privada
- Se necessário, transfira o JDK da hiperligação seguinte:
http://java.sun.com/javase/downloads/index.jsp - Verifique se o ficheiro PFX/P12 pode ser utilizado com o jarsigner. Execute o comando seguinte; o nome alternativo necessário no passo 5 será apresentado junto da parte superior da saída:
keytool -list -storetype pkcs12 -keystore mycert.pfx -v
- Crie um ficheiro JAR a partir dos ficheiros de classe Java, utilizando a ferramenta jar:
jar cvf myapp.jar myapp.class
- Assine o ficheiro JAR com o jarsigner, utilizando o certificado de assinatura de código e a chave privada:
jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
- "mycert.pfx" é o caminho completo para o ficheiro PFX/P12 que contém o certificado de assinatura de código e a chave privada. O ficheiro também deve incluir todos os certificados intermédios.
- "aliasname" é apresentado na saída do passo 2, junto da parte superior. Se o ficheiro PFX/P12 tiver sido exportado do Windows, o nome alternativo será efetivamente um GUID.
- Quando solicitado, introduza a palavra-passe associada à chave privada no ficheiro PFX/P12. Também pode incluir a opção "-storepass" para especificar a palavra-passe na linha de comandos.
- O nome de ficheiro de entrada não assinado é "myapp.jar" e será substituído pela versão assinada do ficheiro. Utilize a opção da linha de comandos "-signedjar" para especificar nomes de ficheiro de entrada e de saída separados.
jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname" - Verifique o ficheiro JAR assinado
jarsigner -verify -verbose -certs myapp.jar
- Distribuir o código
Hiperligações