Utilizando HTTPS/SSL com Cloud Services no Windows Azure

Olá pessoal,

Geralmente quando discuto a arquitetura de aplicações que tirem proveito dos benefícios dos Cloud Services no Windows Azure, muitas dessas aplicações precisam proteger conteúdos sensíveis, como, informações pessoais e dados de login das aplicações.

O processo para se utilizar HTTPS nas aplicações é bastante simples, envolvendo algumas tarefas no portal de gerenciamento e outras tarefas no Visual Studio, e pode ser resumido da seguinte forma:

Tarefas no portal de gerenciamento:

  1. Criar o Cloud Services
  2. Fazer upload do certificado digital

Tarefas no Visual Studio:

  1. Fazer referência à um certificado
  2. Adicionar um endpoint HTTPS utilizando essa referência

Entretanto, existe um pré-requisito muito importante que precisa ser satisfeito antes de iniciarmos os passos acima, que é ter acesso ao certificado digital. Se vc está fazendo a publicação de uma aplicação em produção, muito possivelmente vc já adquiriu o certificado digital de uma entidade certificadora e pode passar para os próximos passos. Agora, se vc está fazendo o deploy de um sistema que está em desenvolvimento, é bem provável que vc queira utilizar um certificado auto assinado (self signed certificate). Tecnicamente este tipo de certificado funciona, mas como ele não é assinado por uma entidade certificadora os navegadores emitem um aviso e seu uso não é indicado para ambientes de produção.

O Visual Studio possui uma ferramenta que facilita a geração de certificados auto assinados, é a ferramenta Makecert (na verdade o Makecert pode ser instalado com vários SDKs). Vc pode gerar um desses certificados utilizando a seguinte sintaxe:

makecert -sky exchange -r -n "CN=<Nome do certificado>" -pe -a sha1 -len 2048 -ss My <Nome do certificado>.cer

Para entender melhor o exemplo acima, vamos ver detalhes de todos os parâmetros utilizados:

  • -sky exchange: indica que o certificado pode ser utilizado para encriptar os dados;
  • -r: cria um certificado auto assinado;
  • -n “CN=<Nome do certificado>”: indica o nome do certificado;
  • -pe: marca a chave privada como sendo possível de ser exportada;
  • -a sha1: algoritmo utilizado para assinatura;
  • -len 2048: tamanho, em bits, da chave do certificado;
  • -ss My: indica em qual certificate store o certificado será salvo;
  • <Nome do certificado>.cer: arquivo que terá o certificado salvo.

Com o certificado criado, podemos voltar para os passos elencados anteriormente no portal de gerenciamento e depois no Visual Studio.

A primeira tarefa no portal de gerenciamento é a criação do Cloud Service. Acredito que a maneira mais fácil de criar um Cloud Service é através da opção Quick Create do portal de gerenciamento. Para isso, acesse a opção New, Compute, Cloud Service, Quick Create e forneça o nome do Cloud Service, que terá uma URL no formato <NomeDoCloudService>.cloudapp.net, e também a região que ele estará localizado.

image

O próximo passo é fazer upload do certificado gerado no portal de gerenciamento. Para isso precisamos exportar o certificado no formato .pfx, conforme os seguinte passos:

Abra o gerenciador de certificados do Windows executando o comando certmgr.MSc

Encontre e abra o certificado que foi gerado com o Makecert.

Acesse a aba Details e em seguida clique no botão Copy to File…

image

No wizard, escolha a opção para exportar a private key.

image

Mantenha as opções padrão apresentadas e forneça uma senha quando tiver a possibilidade.

image

Por último, forneça o endereço que o arquivo será exportado e finalize o wizard.

Agora devemos fazer upload do certificado no portal de gerenciamento. Abra o Cloud Service recém criado na guia de certificados e escolha a opção upload:

image

Na tela apresentada, forneça o arquivo .pfx exportado e a senha utilizada:

image

Com isso vc deve ter um resultado similar à tela abaixo. Copie o thumbprint, destacado em amarelo na imagem, que ele será utilizado nos próximos passos dentro do Visual Studio.

image

Já no Visual Studio, abra as propriedades da sua Web Role e adicione um novo certificado informando o thumbprint do certificado que foi feito upload.

image

Feito isso, é hora de adicionar é hora de adicionar um endpoint Https fazendo referência para esse certificado, que pode ser escolhido na lista de seleção da coluna SSL Certificate Name.

image

Agora é só fazer o deploy do seu projeto e acessar a sua aplicação via Https.

Como estamos utilizando um certificado self signed, é bastante provável que o seu navegador gere uma mensagem de erro ao acessar o endereço. Para acessar a aplicação deve-se escolher a opção de continuar.

image

Abs.,

RG