Criar certificado SSL SAN


O Nome Alternativo do Assunto ( SAN ) é uma extensão do X.509 que permite que vários valores sejam associados a um certificado de segurança usando um subjectAltName. Esses valores são chamados de nomes alternativos de assuntos (SANs).wikipedia

Execute a linha de comandos em modo de administrador
Permita as alterações do controle de conta de utilizador (se necessário)

1 – Instala o módulo Posh-ACME

powershell -command "Install-Module -Name Posh-ACME -Scope CurrentUser"

2 – Permite a execução do módulo sem restrinções

powershell -command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force"

3 – Importa o módulo remotamente

powershell -command "Import-Module Posh-ACME"

Modo de teste (certificado inválido)

powershell -command "Set-PAServer LE_STAGE"

4 – Modo de produção (certificado válido) limite de 50 novos certificados por semana

powershell -command "Set-PAServer LE_PROD"

5 – Crie o certificado SAN (válido por 90 dias) com a chave Global API Key Cloudflare

powershell -command "New-PACertificate '*.um.pt','um.pt','*.dois.pt','dois.pt' -AcceptTOS -Contact oTeuEmailPessoal -DnsPlugin Cloudflare -PluginArgs @{CFAuthEmail='oTeuEmailCloudflare'; CFAuthKey='aTuaChaveGlobalAPI'} -Verbose"

6 – Para localizar a pasta do certificado criado acima

powershell -command "Get-PACertificate | fl"

Cria apenas uma tarefa automática de renovação, todos os dias às 6h00 (linha de comandos)

schtasks /create /f /tn RunTaskCert /tr C:\localDaPasta\UpdateCert.bat /sc daily /st 06:00

Cria apenas um ficheiro powershell executável (linha de comandos)

echo New-PACertificate '*.um.pt','um.pt','*.dois.pt','dois.pt' -AcceptTOS -Contact oteuEmailPessoal -DnsPlugin Cloudflare -PluginArgs @{CFAuthEmail='oTeuEmailCloudflare'; CFAuthKey='aTuaChaveGlobalAPI'} -Verbose >C:\localDaPasta\Cert.ps1

Processo automático, todos os dias às 6h00

schtasks /create /f /tn RunTaskCert /tr C:\localDaPasta\UpdateCert.bat /sc daily /st 06:00 & echo @echo off >C:\localDaPasta\UpdateCert.bat& echo powershell -command - ^< C:\localDaPasta\Cert.ps1 ^&^& taskkill /f /im nomeDoServidor /im nomeDoServidorWeb >>C:\localDaPasta\UpdateCert.bat & echo for %%i in ( "C:\Users\%UserName%\AppData\Local\Posh-ACME\acme-v02.api.letsencrypt.org\87658968\!.um.pt\*.cer" "C:\Users\%UserName%\AppData\Local\Posh-ACME\acme-v02.api.letsencrypt.org\87658968\!.um.pt\*.key" "C:\Users\%UserName%\AppData\Local\Posh-ACME\acme-v02.api.letsencrypt.org\87658968\!.um.pt\*.pfx" ) do xcopy %%i /y C:\localDaPasta\server >>C:\localDaPasta\UpdateCert.bat & echo start /d "C:\localDaPasta\" nomeDoServidor >>C:\localDaPasta\UpdateCert.bat & echo start /d "C:\localDaPasta\" nomeDoServidorWeb & echo exit /b >>C:\localDaPasta\UpdateCert.bat & echo Submit-Renewal -AllOrders -Verbose >C:\localDaPasta\Cert.ps1