Como emitir um certificado SSL Wildcard de graça


Ú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