Este manual tem como objetivo orientar administradores de sistema sobre como aumentar a segurança de uma instalação do SACI.
Fazer com que toda a comunicação com o SACI seja feita através de uma conexão segura aumenta significativamente a segurança do sistema, pois dentre outras coisas dificulta a aplicação de ataques do tipo "eavesdropping" (bisbilhotagem).
Atenção: é aconselhável um estudo de desempenho a fim de encontrar um balanço ideal entre segurança e desempenho, já que uma conexão segura (com dados encriptados) afeta negativamente a velocidade de transmissão.
Essa ferramenta é uma implementação em código-aberto dos protocolos SSL e TLS, e está disponível em praticamente todos os sistemas operacionais.
Para verificar se OpenSSL já está instalado no seu sistema, execute no terminal o comando:
openssl version
A saída deve ser do tipo "OpenSSL 0.9.8o 01 Jun 2010". Caso OpenSSL não esteja instalado, execute o comando:
sudo apt-get install openssl
Crie as seguintes pastas usando os comandos:
cd /etc
sudo mkdir my_ssl
cd my_ssl
sudo mkdir myCA
cd myCA
sudo mkdir private //chave privada de autenticação
sudo mkdir certs //certificados emitidos
sudo mkdir newcerts //certificados novos
sudo mkdir crl //certificados revogados
Copie o arquivo de configuração básica do OpenSSL usando os comandos:
cd /etc/my_ssl
sudo cp /etc/ssl/openssl.cnf openssl.my.cnf
Crie dois novos arquivos (index.txt e serial) para que eles sirvam como fontes de dados para o OpenSSL. Execute os comandos:
cd /etc/my_ssl/myCA
sudo touch index.txt serial
echo '01' | sudo tee serial
Aviso: os comandos seguintes devem ser realizados no diretório da CA (no exemplo, /etc/my_ssl/myCA).
O próximo comando criará um certificado raiz auto-assinado pela sua própria CA e válido por 5 anos:
sudo openssl req -config ../openssl.my.cnf -new -x509 -extensions v3_ca -keyout private/myca.key -out certs/myca.crt -days 1825
Serão pedidos os dados:
Confira se o arquivo "private/myca.key" foi criado corretamente antes de prosseguir.
Edite o arquivo /etc/my_ssl/openssl.my.cnf e na seção [ CA_default ] mude as seguintes configurações:
dir = ./myCA //a pasta do SSL é a mesma onde está a CA
certificate = $dir/certs/myca.crt //onde está o Certificado Raiz da CA
private_key = $dir/private/myca.key //onde está a Chave Privada da CA
Uma vez criada a CA, é necessário criar um "keystore", que é o local onde são armazenados um ou mais certificados para que possam ser usados pelas aplicações. Isso pode ser feito usando o utilitário "keytool" que vem junto ao Java Development Kit (JDK).
Assumindo que o nome da aplicação seja "SACI" e o local onde o keystore será armazenado em "/home/saci/keystore", execute:
sudo keytool -genkey -alias SACI -keyalg RSA -keystore /home/saci/keystore
Serão pediso os dados:
Uma vez criado um keystore, é possível usá-lo junto ao Tomcat para que uma conexão segura seja disponibilizada. A pasta em que o Tomcat está instalado será referenciada daqui em diante por CATALINA_HOME.
Edite o o arquivo CATALINA_HOME/conf/server.xml: procure pelo elemento "Connector" configurado para a porta 8443 (port="8443") e remova os comentários. Nesse mesmo elemento, adicione os atributos:
keystoreFile="/home/saci/keystore" keystorePass="(senha gerada no passo 1.5)"
A próxima etapa é requerer à CA uma certificação para que o SACI seja assinado. Execute o comando:
sudo keytool -certreq -keyalg RSA -alias SACI -file /home/saci/certreq.csr -keystore /home/saci/keystore
Forneça a senha do keystore. Após isso, será criada a requisição "certreq.csr".
Na pasta onde está a configuração do OpenSSL (ex: /etc/my_ssl), execute o comando:
sudo openssl ca -config openssl.my.cnf -policy policy_anything -out ./myCA/certs/SACI.crt -infiles /home/saci/certreq.csr
Confirme as duas perguntas seguintes com "Y". Em caso de sucesso, na pasta /etc/my_ssl/myCA/certs será gerado o arquivo SACI.crt contendo o certificado da aplicação assinado.
sudo keytool -import -alias root -keystore /home/saci/keystore -trustcacerts -file /etc/my_ssl/myCA/certs/myca.crt
Confirme com "yes" e o certificado raiz será adicionado ao keystore.
sudo keytool -import -alias tomcat -keystore /home/saci/keystore -file /home/saci/SACI.crt
O certificado da aplicação SACI será adicionado ao keystore.