O custo de um certificado SSL está em torno de $100 a $200 por ano. Para uma empresa pequena ou média este custo é baixo. No entanto esse investimento para profissionais autônomos como fotógrafos, desenvolvedores e startups, acaba desestimulando sua adoção.
O Let's Encrypt é um provedor de certificado gratuito e aberto. Uma alternativa barata para todos!
Let's Encrypt é uma autoridade de certificação (CA), que fornece certificados de criptografia TLS (Transport Layer Security ) X.509 gratuitos. Com um processo simples de criação, validação e renovação de certificados. Eliminando a complexidade dos procedimentos atuais.
A organização por trás da Let's Encrypt chama-se Internet Security Research Group (ISRG) e possui muitos patrocinadores oficiais. Abaixo estão os sponsors mais conhecidos.
Isso demonstra que o Let's Encrypt é um player sério no mercado.
Existe uma extensão do Let's Encrypt para App Services do Azure, que permite a obtenção, configuração e renovação de um certificado gratuitamente.
Os certificados possuem 90 dias de validade, após isso a extensão, WebJob, renova automaticamente por mais 90 dias!
Este artigo será um guia passo-a-passo para ajudar na aquisição e instalação do seu HTTPS.
Pré-requisitos
Leia com atenção os pré-requisitos antes de começar. O maior impeditivo é a instancia do Web App, pois as camadas Free e Shared não possuem recursos de SSL / TLS.
Instância do Web App
A Instância deve ter OBRIGATÓRIAMENTE Custom Domain + SSL habilitados. Atualmente a menor instância que oferece estes recursos é a Basic 1 (B1) com um custo de R$185.
Custom Domain configurado.
É necessário que seu site possua um custom domain configurado. Para conseguir um é necessário adquirir através do RegistroBr.
Se aderiu um agora e precisa de ajuda na configuração do dominio, pode seguir estes tutoriais para configurar seu Custom Domain: Tutorial: mapear um nome DNS personalizado existente para os Aplicativos Web do Azure ou Configurar Dominio Personalizado do Registro.br para Azure
Storage Account
A extensão Azure Let's Encrypt irá instalar um WebJob. Que irá efetuar algumas rotinas, dentre delas a de renovação, mas para isso é necessário possuir uma Storage Account.
Configurando o Let's Encrypt
1- Azure PowerShell Module
Primeiro é necessário instalar e configurar o Azure PowerShell Module. Com ele é possivel conectar ao Azure através do PowerShell.
Abra o PowerShell em modo administrador (Windows > PowerShell > Botão Direito > Run As Administrator).
Execute o comando abaixo para instalar o Azure PowerShell
Pode aparecer algumas mensagens. A primeira de Untrusted Repository, pois o PowerShell Gallery não vem configurado por default. A outra é o Nuget desatualizado. Caso apareça confirme as mensagens com Yes ou Yes to All.
Feito isto é necessário carregar o módulo instalado, digite o seguinte comando
Se por um acaso tiver problemas durante a instalação, veja o guia oficial da Microsoft: Install Azure PowerShell with PowerShellGet
2- Configurando uma rota personalizada
No web.config do App Service será necessário configurar uma rota personalizada. Adicione a seguinte rule no rewrite do Web.config
Esta rota será utilizada pelo Let's Encrypt para validar o seu domínio.
3- Registrando um Service Principal
Felizmente esse tópico é a parte com maior dificuldade do tutorial, após isto os próximos passos serão extremamente simples.
Abra o Powershell e ATENÇÃO, não feche ele até a conclusão do tutorial.
Com o PowerShell aberto digite:
Caso tenha mais de uma conta do azure, passe o parâmetro -SubscriptionId (Caso não saiba qual é este parâmetro, mais adiante há uma imagem que exibe onde encontrar).
Além de efetuar o login, foi setado duas variaveis. Agora será criado uma nova application
Estes passos foram necessários para preparar a criação do Service Principal, agora o comando para criar:
E por fim, será atribuido um Contributor ao Service Principal
Ainda com o console do PowerShell aberto, execute o comando $app.ApplicationId e anote o GUID exibido. Anote também o valor de $password, pois será utilizado nos passos seguintes.
Com o Service Principal devidamente configurado o Azure Let's Encrypt todos os pré-requisitos foram atendidos para seguir com a instalação.
Está se perguntando: O que será que eu fiz no meu Azure?
Eis a resposta: Os comandos acima criaram um novo Application no Azure Active Directory
4- Application settings
Após os passos acima, é necessário preparar o Application settings de seu App Service.
Para isso vá no painel do azure e abra os Settings da App Service que será instalado o certificado (App Services > Seu app > Application settings).
As configurações a seguir devem ser colocados na seção Application Settings.
AzureWebJobsDashboard
AzureWebJobsStorage
letsencrypt:Tenant
letsencrypt:SubscriptionId
letsencrypt:ClientId
letsencrypt:ClientSecret
letsencrypt:ResourceGroupName
- AzureWebJobsDashboard
- DefaultEndpointsProtocol=https;AccountName={storage account};AccountKey={storage account key}
- AzureWebJobsStorage
- DefaultEndpointsProtocol=https;AccountName={storage account};AccountKey={storage account key}
Para conseguir estas informações vá no Storage Account que foi separado (All Resources > Storage Account > Access Keys) e pegue o Storage account name e uma das Keys ou copie a Connection String
As informações necessárias para preencher o 1 - letsencrypt:ResourceGroupName, 2 - letsencrypt:SubscriptionId e 3 letsencrypt:Tenant podem ser encontradas de acordo com a figura abaixo:
Obtendo o letsencrypt:Tenant
As outras duas configurações são obtidas no PowerShell
- letsencrypt:ClientId
- É o GUID do $app.ApplicationId
- letsencrypt:ClientSecret
- É o $password
Salve as configurações. Seu Application Settings estará parecido com a imagem abaixo.
5- Instalando a Extensão
Para instalar a extensão Azure Let's Encrypt, abra o Kudu (Advanced Tools) do seu site (App Service > Aplicação > Advanced Tools > Go). Pode ser aberto também pela URL https://{nome do seu site}.scm.azurewebsites.net.
Ao concluir a instalação será necessário reiniciar o Web App. Isto pode ser feito diretamete pelo Kudu. No botão Restart Site no canto superior direito.
6- Configurando a Extensão
Ao abrir a extensão aparecerá uma tela conforme a imagem abaixo
Nesta tela será necessário preencher todas as variaveis do passo 4- Application settings.
Na tela seguinte haverá um resumo das SSL's já instaladas (Caso haja alguma).
E por fim na ultima tela, selecione o Hostname que deseja instalar a SSL, pressione o Botão Request and install certificate!
Aguarde a instalação e seu certificado já estará pronto!
Confira o Certificado
Se tudo deu certo, ao acessar seu site por HTTPS, o seguinte certificado será exibido
Espero que tenham gostado e acima de tudo ajudado! Duvidas, criticas ou sugestões deixe nos comentários.
Comments