Como gerar certificados SSL para o Elipse Mobile

Para proteger a tramitação de dados entre os programas clientes e o servidor do Elipse Mobile, é altamente recomendado o uso de certificados de segurança SSL principalmente quando o aplicativo estiver rodando na Internet.

Resumo

Este artigo aborda todo o processo de geração e configuração de um certificado SSL para uso no Elipse Mobile.

O que são certificados SSL?

Imagine dois personagens, Alice e Bob, ambos desejam conversar, mas o assunto que eles desejam tratar é sigiloso, tal como as mensagens trocadas entre os clientes e o servidor do Elipse Mobile.

Para este exemplo, Bob representa o servidor do Elipse Mobile, e Alice é um dos clientes como, por exemplo, um usuário no Android. A mensagem sigilosa representa a leitura e escrita nos controles.

Para que Alice consiga enviar uma mensagem a Bob que somente ele consiga ler, Bob precisará ter duas chaves, uma pública e uma privada. A chave pública deixará ilegível as mensagens enviadas por Alice enquanto que a chave privada transformará a mensagem ilegível em legível.

A chave pública é a chave distribuída para a Alice e para qualquer outra pessoa que deseja se comunicar com Bob e a chave privada não é distribuída, ela fica guardada única e exclusivamente com Bob, ou seja, somente Bob com sua chave privada consegue ler as mensagens enviadas para ele.

Quando Alice desejar conversar com Bob, ela solicitará a chave pública de Bob, porém Alice precisará saber se a chave pública de Bob é realmente dele para que somente ele leia a mensagem. Para ter essa certeza, existe um outro personagem, a CA (autoridade de certificação) que é responsável por informar que a chave pública que a Alice obteve é realmente a chave de Bob.

Alice confirma através da CA que a chave pública é a chave de Bob, ela então deixa a mensagem ilegível utilizando a chave pública e envia esta mensagem ilegível para Bob, este por sua vez, recebe a mensagem e utilizando a chave privada transforma a mensagem ilegível em legível.

Quando falamos sobre um certificado SSL, estamos falando desse conjunto apresentado no exemplo da Alice e Bob. A chave pública, privada e o certificado assinado pela CA.

A pasta Tools do Elipse Mobile e o OpenSSL

O software que estaremos utilizando neste artigo é o OpenSSL, um conjunto de utilitários para criptografia que irá nos auxiliar no processo de geração de chaves e solicitação da assinatura do certificado.

O instalador do Elipse Mobile acompanha o executável do OpenSSL, openssl.exe, que poder ser encontrado dentro da pasta Tools do diretório de instalação.

Para você usar o OpenSSL, é necessário executá-lo através do prompt de comando como administrador.

Navegue até a pasta Tools.

Na pasta Tools você pode observar que existem os três seguintes arquivos: make_certificate.bat, openssl.cfg e openssl.exe.

make_certificate.bat
Este arquivo serve para criar um certificado auto-assinado, isso é, um certificado onde você não faz uma solicitação de assinatura, pois você é a própria CA de seu certificado SSL.

Este é um meio sem custo de gerar certificados SSL, porém a desvantagem é a necessidade de instalação dos certificados em cada cliente, um pouco mais complexo além de possíveis inconvenientes em algumas plataformas como o Android 4.4 que pode alertar sobre uma possível vulnerabilidade por ter instalado um certificado auto-assinado.

Se você deseja fazer um teste usando certificados SSL, um certificado auto-assinado é uma boa opção, para isso, há um artigo dedicado a explicar como criar um em: Como gerar um certificado de teste para HTTPS.

openssl.cfg
É o arquivo de configuração do openssl.exe. Você pode ignorar este arquivo.

openssl.exe
Este é o mais importante arquivo, pois é ele quem faz tudo, basta executá-lo passando os argumentos corretos. Abaixo abordado com detalhe o uso desse programa e de seus argumentos para que seja possível gerar um certificado assinado por uma CA reconhecida no mercado.

Gerando o par de chaves e a CSR

Com o prompt de comando aberto em modo de administrador e dentro do diretório Tools do Elipse Mobile você poderá optar pelas seguintes opções para gerar uma CSR (solicitação de assinatura de certificado) à CA:

  1. Você já tem uma chave privada
  2. Você deseja criar uma nova chave privada

Se você já tem uma chave privada, é recomendado que sua chave seja de no mínimo 2048 bits.

Se você já tem uma chave privada, execute o seguinte comando:

openssl.exe req -new -key .\nome-da-chave.key -out nome-da-solicitacao.csr

Se você desejar criar uma nova chave privada, execute o seguinte comando:

openssl.exe req -new -newkey rsa:2048 -nodes -keyout .\nome-da-chave.key -out nome-da-solicitacao.csr

Ambos os comandos ao serem executados, aparecerão na tela algumas perguntas que precisam ser respondidas cuidadosamente. Abaixo encontram-se imagens do processo.

A primeira etapa do processo é executar o openssl.exe conforme citado a cima e alterando apenas o elipse.key e elipse.csr para um nome de sua preferência.

Após executar o comando, surgirão algumas perguntas necessárias para gerar a solicitação da assinatura do certificado à CA.

A primeira pergunta é “Qual é o nome do seu país (código de 2 letras)?”. Na imagem abaixo colocamos BR para Brasil.

Depois outras perguntas vão sendo feitas.

State or Province Name
Nome completo do seu estado. Ex.: Rio Grande do Sul

Locality Name
Nome completo da sua cidade. Ex.: Porto Alegre

Organization Name
Nome da sua organização, empresa. Ex.: Elipse Software

Organization Unit Name
É o departamento responsável pelo certificado. Ex.: TI

Common Name
Este campo é muito importante e deve ser digitado corretamente, pois é o nome do domínio que receberá o certificado, ou seja, quando um certificado SSL é gerado, ele é gerado para um domínio em específico.

Neste campo, o exemplo usa elipse.com.br, e não www.elipse.com.br, visto que o padrão para site é o www, caso o seu domínio seja outro, por exemplo, outro.elipse.com.br, então você deve preencher exatamente outro.elipse.com.br.

Email Address
É o e-mail do responsável pelo registro.

Após essas perguntas, mais duas opcionais surgem, mas você pode ignorá-las deixando a resposta em branco.

Abaixo é apresentada uma imagem com um exemplo de respostas para um certificado emitido para a Elipse Software.

Ótimo, neste momento você pode observar que dentro da pasta Tools surgiram dois novos arquivos, um com extensão .csr e outro com .key. No exemplo da elipse, os arquivos são elipse.csr e elipse.key.

O arquivo .key é a chave privada e o arquivo .csr é a solicitação da assinatura do certificado contendo a chave pública que os clientes utilizaram para cifrar as mensagens.

Gerando o certificado SSL

Vá até a sua CA e inicie o processo de certificação, ela solicitará o conteúdo do CSR.

Abra o arquivo .csr que você gerou com o seu editor de texto preferido e copie o conteúdo, cole no campo que solicita a CSR da sua CA. Caso a CA solicite o arquivo e não o conteúdo dele, faça upload do arquivo .csr.

Após informar o CSR à CA, ela gerará um certificado assinado por ela e lhe enviará este arquivo de certificado que geralmente tem a extensão .crt, por exemplo, elipse.crt.

Configurando o certificado SSL no Elipse Mobile

Para configurar o certificado no Elipse Mobile, abra o Settings que pode ser encontrado através do clique direito em cima do ícone do Elipse Mobile localizado na bandeja do sistema, próximo ao relógio.

Na aba Settings, marque a opção Enable secure connections e importe o seu arquivo de certificado .crt para o campo Security certificate (.crt) e importe o seu arquivo de chave privada .key para o campo Private key (.key).

Caso você prefira, poderá também alterar o número da porta HTTPS de 443, o padrão, para outro número.

Os arquivos .crt e .key serão copiados para a pasta principal do Elipse Mobile, então você poderá excluir o arquivo que você obteve com a CA e os arquivos que você gerou na pasta Tools.

Clique no botão OK e aparecerá uma janela solicitando que o Elipse Mobile seja reiniciado, confirme clicando novamente em OK.

Parabéns! Você concluiu a configuração necessária para melhorar a segurança da aplicação.

Agora você poderá acessar aplicação normalmente, porém não esqueça de definir corretamente a porta ou caso você esteja acessando de um cliente web e a porta HTTPS ficou 443, então você só precisa acessar normalmente, pois o Elipse Mobile irá redirecionar você automaticamente da conexão HTTP para a conexão segura HTTPS.

Referências