5.1 Instalando o JSSE
A instalação do JSSE é extremamente simples. Faça o download do JSSE, versão 1.0.2 ou superior, através do link apresentado na Tabela 1 1. Posteriormente, descompacte o arquivo obtido por download em uma pasta específica. Crie uma variável de ambiente com o nome JSSE_HOME que contenha o caminho absoluto para o diretório em que o JSSE foi descompactado. A Listagem 5-1 apresenta a seqüência de comandos necessária para a instalação do JSSE.
# Copia o arquivo binário para o diretório /opt.
sudo mv jsse-1_0_3_04-gl.zip /opt/
# Descompactando o arquivo.
sudo tar -xzvf jsse-1_0_3_04-gl.zip
# Renomeia o diretório onde foi descompactado o arquivo.
sudo mv jsse-1_0_3_04-gl jsse
Edite o arquivo /etc/bash.bashrc com o editor de texto de preferência e adicione as linhas a seguir, definindo uma variável de ambiente chamada JSSE_HOME:
JSSE_HOME=/opt/jsse
export JSSE_HOME
Listagem 5-1 - Instalando o JSSE.
5.2 Criando os Certificados
Para a criação do certificado do servidor Tomcat será utilizada a ferramenta Keytool, que já vem instalada na versão 1.4 do Java 2 Second Edition (J2SE). O Keytool é um utilitário de gerenciamento de certificados e chaves. Possibilita ao usuário administrar seus pares de chaves públicas e privadas e os certificados associados para uso de auto-autenticação ou para uso de integridade e autenticação usando assinaturas digitais. O Keytool fica na pasta bin do diretório do j2sdk.
O Keytool armazena as chaves e os certificados em um local chamado keystore. O keystore é normalmente implementado na forma de arquivos, protegendo as chaves privadas com senhas. O keystore é um formato padrão da plataforma Java que é utilizado pelo Tomcat.
Para a criação do certificado do servidor, foi utilizado o comando apresentado na Listagem 5-2.
$ $JAVA_HOME/bin/keytool -genkey -keystore kservidor -alias tomcat -keyalg RSA
Enter keystore password: sua_senha
What is your first and last name?
[Unknown]:
localhost
What is the name of your organizational unit?
[Unknown]:
CIC
What is the name of your organization?
[Unknown]:
UFLA
What is the name of your City or Locality?
[Unknown]:
Lavras
What is the name of your State or Province?
[Unknown]:
Minas Gerais
What is the two-letter country code for this unit?
[Unknown]:
BR
Is CN=localhost, OU=CIC, O=UFLA, L=Lavras, ST=Minas Gerais, C=BR correct?
[no]:
yes
Enter key password for <tomcat>
(RETURN if same as keystore password): sua_senha
Listagem 5-2 - Criando o certificado do servidor.
O primeiro comando da Listagem 5-2 gera um certificado referenciado pelo alias tomcat e que será armazenado em um arquivo chamado kservidor. O certificado foi gerado utilizando o algoritmo RSA e foi pedido uma senha para o armazenamento da chave no keystore e uma senha para o alias.
É importante salientar que o algoritmo RSA deve ser utilizado preferencialmente, por ser considerado um algoritmo seguro e por ser compatível com a maioria dos servidores de componentes.
5.3 Editando o Arquivo de Configuração do Tomcat
Finalmente, basta alterar o arquivo de configuração $CATALINA_HOME/conf/server.xml, onde $CATALINA_HOME representa o diretório onde o Tomcat está instalado. Uma tag chamada
é incluída no arquivo server.xml que vem instalado por padrão junto com o Tomcat . As alterações realizadas neste arquivo são apresentadas na Listagem 5-3.
O atributo port (por padrão, definido com o valor 8443) faz referência ao número da porta na qual o Tomcat esperará por conexões seguras. É possível alterar o valor deste atributo para qualquer outra porta, como por exemplo, a porta padrão para comunicação via protocolo HTTPS (443), entretanto em alguns sistemas operacionais, é necessário que o número da porta utilizado seja maior que 1024.
<-- Definindo um conector SSL HTTP/1.1 na porta 8443 -->
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="10" debug="0" scheme="https" secure="true">
<Factory className="org.apache.catalina.net.SSLServerSocketFactory"
clientAuth="false" protocol="TLS"/>
</Connector>
Listagem 5-3 - Alterando o arquivo server.xml.
Pode-se notar a presença de um elemento Factory apresentado na Listagem 5-3. Este elemento define uma fábrica de sockets, ou seja, um componente que cria e configura um socket para conectar-se a uma determinada porta. A Tabela 5-1 apresenta os atributos configuráveis para o elemento Factory, bem como uma breve descrição sobre cada um destes elementos.
Depois de completada todas estas configurações, deve-se reiniciar o Tomcat. Para acessar qualquer aplicação web que suporte SSL deve-se utilizar o endereço: https://localhost:8443.
Atributo |
Descrição |
className |
A nome da classe que implementa a fábrica de sockets. |
clientAuth |
Altere este valor para true caso for necessário que o Tomcat requisite de todos os clientes SSL um certificado para utilização do socket criado. |
keystoreFile |
Adicione este atributo se o arquivo keystore não está localizado no local padrão esperado pelo Tomcat. O padrão esperado pelo Tomcat é um arquivo com o nome .keystore localizado no diretório /home do usuário. |
keystorePass |
Adicione este elemento se for necessário utilizar uma senha diferente da esperado pelo Tomcat para o keystore e para o certificado (Recomendado). |
protocol |
O protocolo de criptografia que será utilizado neste socket. |
Tabela 5-1 - Atributos do elemento Factory.