Usando o Keytool
Gerar o par de chaves (pública e privada)
Este passo deve ser executado se ainda não houver um par de chaves a ser usado no processo de assinatura
Para criar o par de chaves utiliza-se a ferramenta keytool do JDK cujas opções são:
Keytool -genkey {-alias alias} {-keyalg keyalg} {-keysize keysize} {-sigalg sigalg} {-dname dname} {-keypass keypass} {-validity valDays} {-storetype storetype} {-keystore keystore} {-storepass storepass} {-v} {-Jjavaoption}
alias þ Nome pelo qual as chaves serão reconhecidas e armazenadas no keystore (banco de chaves). Ex: mykey
keyalg þAlgoritmo de criptografia utilizado para a criação das chaves. Este argumento é opcional, se nada for especificado o algoritmo utilizado será o DSA (Digital Signature Algorithm). Neste projeto foi utilizada esta opção default.
keysize þ Tamanho da chave que será gerada. O algoritmo DSA suporta tamanhos de 512 a 1024 bits, sendo o tamanho necessariamente múltiplo de 64. Para qualquer algoritmo o tamanho default é 1024.
sigalg þAlgoritmo de criptografia utilizado para assinar o JAR. Este argumento é opcional, se nada for especificado o algoritmo utilizado será o DSA.
dname þ Nome da entidade que gerará o par de chaves Ex:
CN=Banco do DAS, OU=LCMI, O=UFSC, L=Florianópolis, S=Santa Catarina, C=BR
Onde : CN = nome comum, OU = unidade organizacional (departamento, divisão), O = nome da organização, L = nome da localidade (cidade), S = estado, C = código do país.
keypass þ Senha utilizada para a proteção da chave no keystore.
validity þ Número de dias que o certificado deve ser válido.
storetype þ Permite definir a forma de armazenamento e o formato dos dados do keystore. Por default o formato é JKS (tipo proprietário da implementação de keystore fornecido pela Sun).
keystore þkeystore onde as chaves serão armazenadas. Se nada for especificado serão armazenadas no User.Home.keystore (em geral c:\windows.keystore), se não existir este será criado.
storepass þ Senha protetora do keystore.
v þ Mostra o certificado em forma legível
Para a criação das chaves empregadas neste projeto utilizou-se a seguinte linha de comando:
keytool -genkey -dname “cn=Banco do Das, ou=LCMI, o=UFSC, c=BR” -alias key -keystore u:\grupo\mykeystore -storepass 123456 -validity 180
Quando as chaves são geradas (comando ?genkey) um certificado auto-assinado é criado. Caso deseje-se trocar este certificado por um certificado reconhecido por uma empresa confiável, deve-se fazer um pedido de certificado de assinatura (CSR CerticateSigning Request), e o resultado desta solicitação deve ser importado para o keystore.