No entanto, no decorrer de um projeto desses, quando já se está naquele ponto que não tem mais volta, podemos descobrir que o nosso conhecido "sandbox" do Java funciona muito bem com Applet e que definitivamente, se ela não for assinada, não rola de acessar nada do sistema operacional. Ai bate o desepero, pois as vezes é imperativo que se pegue alguma informação do sistema operacional, como usuário logado, algum arquivo de configuração, etc.
Então depois de um bocado de trabalho a gente acaba vendo que a única saida é assinar digitalmente a famigerada Applet. Para fazer isso, proceda basicamente da segunte forma seguinte:
Em uma tela DOS e dentro da pasta do seu jar com a Applet que queira assinar prossiga com os comandos Java abaixo, os quais são nada mais que aplicativos que vem junto com JDK, logo você tem que ter o JDK devidamente configurado.
1º - Produzindo a requisição para um certificado digital, aqui será solicitado uma série de informações a seu respeito que irão compor a requisiçãoa. Um arquivo com o alias AppDownload é gerado:
C:\pastaDoProjeto>keytool -genkey -keyalg rsa -alias AppDownload
Enter keystore password: *********
What is your first and last name?
[Unknown]: Antonio Beltrano
What is the name of your organizational unit?
[Unknown]: Java Software
What is the name of your organization?
[Unknown]: Organization SA
What is the name of your City or Locality?
[Unknown]: Brasilia
What is the name of your State or Province?
[Unknown]: DF
What is the two-letter country code for this unit?
[Unknown]: BR
Is
[no]: yes
Enter key password for
(RETURN if same as keystore password):
2º - Produzir o texto criptografado que passaremos para a certificadora, a qual irá gerar o certificado propriamente dito, a opção > c:\app.txt grava o retorno do comando em um txt chamado app.txt na raiz do c:\, conforme mostrado:
C:\pastaDoProjeto>keytool -certreq -alias AppDownload > c:\app.txt
Enter keystore password: *********
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBtjCCAR8CAQAwdjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwE
AYDVQQHEwlDdXBlcnRpbm8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbX
MxFjAUBgNVBAsTDUphdmEgU29mdHdhcmUxEzARBgNVBAMTClN0YW5sZXk
gSG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALTgU8PovA4y59eb
oPjY65BwCSc/zPqtOZKJlaW4WP+UhmebE+T2Mho7P5zXjGf7elo3tV5uI
3vzgGfnhgpf73EoMow8EJhly4w/YsXKqeJEqqvNogzAD+qUv7Ld6dLOv0
CO5qvpmBAO6mfaI1XAgx/4xU/6009jVQe0TgIoocB5AgMBAAGgADANBgk
qhkiG9w0BAQQFAAOBgQAWmLrkifKiUYtd4ykhBtPWSwW/IKkgyfIuNMML
dF1DH8neSnXf3ZLI32f2yXvs7u3/xn6chnTXh4HYCJoGYOAbB3WNbAoQR
i6u6TLLOvgv9pMNUo6v1qB0xly1faizjimVYBwLhOenkA3Bw7S8UIVfdv
84cO9dFUGcr/Pfrl3GtQ==
-----END NEW CERTIFICATE REQUEST-----
3º - Acesse de alguma forma o site de uma certificadora local (da sua empresa ou caseira mesmo) ou uma oficial (Very Sign, CA, etc) que permite a produção do certificado. Em algum local do site dessa certificadora terá uma espécie de textarea para você colar o texto maluco gerado acima, o melhor é copiar do arquivo app.txt que geramos no c:\, lembra?? Pois esse na tela do DOS as vezes é truncado e perdemos informações fundamentais:
http://siteDaCertificadora.com/certrqxt.asp
4º - De alguma forma, seguindo os Next e Ok´s no passo 3 será produzido um arquivo .cer ou até .p7b, faça o download desse arquivo para a pasta do seu projeto. Vamos para o passo seguinte. Esse é o passo chamado de importação das chaves, proceda com os seguintes comando ainda no DOS:
C:\pastaDoProjeto>keytool -import -alias AppDownload -file chainDERcertnew.p7b
5º - Finalmente, se tudo foi feito corretamente o próximo passo é assinar o arquivo jar de fato, não se esqueça que AppDownload é o alias que escolhemos para o certifcado lá no passo 1:
C:\pastaDoProjeto>jarsigner DownloadApplet.jar AppDownload
Se houver algum interesse posso produzir algumas capturas de telas detalhando melhor o processo.
Links relacionados:
Tabalho de um cara chamado Paulo César Herrmann Wanner
Site da SUN Microsystems a respeito de segrança
Numa Boa
Um abraço a todos,
Nenhum comentário:
Postar um comentário