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:
- Você já tem uma chave privada
- 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.