Você está na página 1de 6

Manipulação de Certificados Digitais

ICP-Brasil em Java
Workshop JustJava – Setembro/2008
http://www.certificadodigital.com.br/justjava2008

Exercício 1 – Configurar SSL

David Renato Francisco Reis Jr.


Gustavo Tadao Okida
Hugo Kotsubo
Ricardo Koji Ushizaki
Exercício 1 – Configurar SSL e Tomcat

Objetivos:
• Criar um keystore contendo um certificado digital self-signed;
• Configurar o Apache Tomcat para usar o certificado no SSL.

Pré-requisitos:
• Apache Tomcat 6.0.18
• JDK 1.6.0_07
Passo 0: Configurar variáveis de ambiente
Windows:
1. Abrir o prompt do DOS;
2. Digitar os comandos abaixo:

SET JAVA_HOME= C:\serasa-justjava2008\jdk1.6.0_07


SET PATH=%JAVA_HOME%\bin;%PATH%

Passo 1: Criar keystore e certificado digital do Tomcat


O comando keytool será usado para criar um keystore contendo um certificado digital para o Tomcat.

Executar o comando keytool com os parâmetros abaixo (digite tudo na mesma linha):

keytool -genkey -alias tomcat -keyalg RSA


–sigalg SHA1WithRSA -keystore tomcat.jks
-dname "C=BR, O=SERASA, OU=JUST JAVA2008, CN=my.super.notebook“
-validity 365

Esse comando irá:


• gerar um par de chaves e um certificado self-signed;
• associar um alias ‘tomcat’ para isso;
• usar algoritmos RSA e SHA1WithRSA para gerar o par de chaves e certificado;
• criar o keystore tomcat.jks;
• criar o certificado com o DN acima;
• criar um certificado com validade de 365 dias

Passo 2: Copiar o keystore para o Tomcat/conf


Copiar o tomcat.jks para o diretório:

serasa-justjava2008/apache-tomcat-6.0.18/conf

OBSERVAÇÃO:
Se desejar, existe um script criado que faz os passos 1 e 2 automaticamente.

Executar o script abaixo:

serasa-justjava2008/apache-tomcat-6.0.18/gerar-cd-servidor.bat
Passo 3: Configurar SSL “simples” no Tomcat
Configurar a porta 8443 para o SSL. Editar o arquivo:
serasa-justjava2008/apache-tomcat-6.0.18/conf/server.xml

Alterar de:
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->

Para:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/tomcat.jks"
keystorePass="serasa"
truststoreFile="conf/truststore-serasa.jks"
truststorePass="serasa"
clientAuth="false" sslProtocol="TLS" />

Isso irá:
• Usar o certificado digital do tomcat.jks para o SSL;
• Usar o truststore-serasa.jks como repositório confiável (vide Anexos);

OBSERVAÇÃO:
Se desejar, existe um arquivo já modificado:

serasa-justjava2008/apache-tomcat-6.0.18/conf/server.xml.modificado

Copie para o arquivo server.xml.

Salve o arquivo e inicie o Tomcat:


• Executar o script:
• serasa-justjava2008/apache-tomcat-6.0.18/bin/startup.bat
Passo 4: Testa o SSL “simples”
Abrir um browser na URL:
https://localhost:8443

O certificado digital apresentado deverá ser o criado no Passo 1.

Passo 5: Configurar o SSL “duplo”


Editar o arquivo abaixo:
serasa-justjava2008/apache-tomcat-6.0.18/conf/server.xml

Alterar o atributo clientAuth conforme em negrito:


<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/tomcat.jks"
keystorePass="serasa"
truststoreFile="conf/truststore-serasa.jks"
truststorePass="serasa"
clientAuth="true" sslProtocol="TLS" />

Isso irá obrigar o cliente (browser) a fornecer seu certificado digital cliente no SSL.

Passo 6: Instalar certificado digital cliente


Para testar o SSL duplo, instale algum certificado digital no seu browser.
Certificados se encontram em:
serasa-justjava2008/docs/certificados

A senha de proteção é “serasa”.

Passo 7: Testa o SSL “duplo”


Abrir um browser na URL:
https://localhost:8443

Dessa vez você deverá apresentar o certificado digital cliente.

Pronto! Exercício 1 ok!


Anexo 1: truststore
Para que o SSL duplo funcione:
1. O cliente (browser) deve confiar no certificado do servidor;
2. O servidor (tomcat) deve confiar no certificado do cliente.

No passo 2, o tomcat usa um truststore para confiar na cadeia de certificados do cliente.

Nesse exemplo, o truststore está em:

serasa-justjava2008/apache-tomcat-6.0.18/conf/truststore-serasa.jks

Para verificar o conteúdo do keystore:

keytool –list –v –keystore truststore-serasa.jks

A senha é “serasa”.