Post Date:1 de Junho, 2020
Última atualização em 6 de Março, 2021 por Vítor Fernandes.
Para que o processo de validação funcione, precisas de estar alojado na plataforma Cloudflare. Não te preocupes, uma conta grátis basta! Apenas adiciona no painel de DNS um registo CNAME com a identificação _acme-challenge e um apontador de destino o_teu_dominio.pt
Pressuponho que já tenhas criado a pasta para a validação, certo?! Se ainda não tens a pasta, cria a pasta .well-known na raíz do teu dirétorio. Para testar o acesso externo, cria um ficheiro de texto dentro da pasta que acabaste de criar. Depois tenta aceder a esse ficheiro de texto através do teu browser. Se o ficheiro de texto, por exemplo for texto.txt. Então, na barra de endereço escreve o_teu_dominio.pt/.well-known/texto.txt
Se não consegues aceder ao teu ficheiro de texto, adiciona um alias no teu ficheiro httpd-vhosts.conf
Alias /.well-known "utiliza_o_caminho_absoluto_da_pasta/.well-known" <Directory utiliza_o_caminho_absoluto_da_pasta/.well-known> AllowOverride All Require all granted </Directory>
A instalação do executável Posh-ACME requer permissões de administrador. Portanto, sem a execução do poweshell em modo administrador não conseguirás executar os passos abaixo!
1 – Instala o módulo Posh-ACME
Sabe mais na página github do programador
powershell -command "Install-Module -Name Posh-ACME -Scope CurrentUser"
2 – Permite que o módulo seja executado sem qualquer restrição
powershell -command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force"
3 – Importa o módulo
Sabe mais na página powershell do programador
powershell -command "Import-Module Posh-ACME"
Define um ambiente de testes (certificado inválido)
Utiliza apenas este método antes da produção de certificados
powershell -command "Set-PAServer LE_STAGE"
4 – Modo produção (certificado válido)
A LetsEncrypt permite apenas 50 novos certificados por semana
powershell -command "Set-PAServer LE_PROD"
5 – Cria um certificado SSL Wildcard utilizando a chave global Cloudflare
O módulo irá validar o domínio através do painel DNS com o acesso da chave API
powershell -command "New-PACertificate '*.um_dominio.pt','um_dominio.pt','*.dois_dominios.pt','dois_dominios.pt' -AcceptTOS -Contact o_teu_email_pessoal -DnsPlugin Cloudflare -PluginArgs @{CFAuthEmail='o_teu_email_cloudflare'; CFAuthKey='a_tua_chave_global_cloudflare'} -Verbose"
6 – Apresenta a localização da pasta
powershell -command "Get-PACertificate | fl"
Renovação dos certificados
Ao invés de gerar um novo certificado, atualiza-o. Por exemplo, a cada semana (todas as segundas-feiras).
Submit-Renewal -AllOrders -Force -Verbose