Como ativar HTTPS no XAMPP/Apache no Windows Server usando Let’s Encrypt e Win-ACME (com renovação automática)

A utilização de HTTPS deixou de ser um diferencial e passou a ser um requisito básico para qualquer aplicação web. Além de proteger a comunicação entre usuários e servidor, o protocolo HTTPS melhora a confiabilidade do site e evita alertas de segurança nos navegadores.

Neste artigo, vamos mostrar como configurar certificados SSL gratuitos do Let’s Encrypt em servidores Windows utilizando XAMPP/Apache e a ferramenta Win-ACME, incluindo a renovação automática dos certificados.

Pré-requisitos

Antes de iniciar, verifique se:

  • O domínio já está apontando para o IP público do servidor.
  • A porta 80 (HTTP) está liberada no firewall.
  • O Apache está funcionando corretamente.
  • Você possui acesso administrativo ao Windows Server.
  • O XAMPP está instalado e operacional.

Download do Win-ACME

O Win-ACME é um cliente ACME para Windows que permite emitir e renovar certificados Let’s Encrypt de forma automatizada.

Download oficial:

Win-ACME Oficial

Após o download, extraia os arquivos para uma pasta permanente do servidor, como:

C:\win-acme

Evite executar o programa diretamente da pasta Downloads, pois a renovação automática depende que os arquivos permaneçam no mesmo local.

Criando a pasta para armazenar os certificados

Crie uma pasta onde serão gravados os arquivos PEM utilizados pelo Apache:

C:\apache-certs

Gerando o certificado

Abra o Prompt de Comando como Administrador.

Acesse a pasta onde o Win-ACME foi instalado:

cd "C:\win-acme"

Execute o comando abaixo substituindo os valores pelo seu domínio:

wacs.exe --source manual --host www.example.com --validation filesystem --webroot "C:\htdocs\www\example.com" --store pemfiles --pemfilespath C:\apache-certs

Entendendo os parâmetros

  • --source manual: informa manualmente o domínio.
  • --host: domínio que receberá o certificado.
  • --validation filesystem: validação através de arquivo temporário.
  • --webroot: pasta pública do site.
  • --store pemfiles: gera arquivos compatíveis com Apache.
  • --pemfilespath: diretório onde os certificados serão gravados.

Ao final do processo serão criados arquivos semelhantes a:

www.example.com-chain.pem
www.example.com-key.pem

Habilitando SSL no Apache

Primeiramente, verifique se o módulo SSL está habilitado no Apache.

No arquivo httpd.conf, confirme a existência das linhas:

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

Configurando o redirecionamento HTTP para HTTPS

No VirtualHost da porta 80 adicione:

RewriteEngine On
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Dessa forma todas as requisições HTTP serão automaticamente redirecionadas para HTTPS.

Criando o VirtualHost SSL

Adicione a configuração SSL:

NameVirtualHost *:443

<VirtualHost *:443>

    ServerName www.example.com

    DocumentRoot "C:\htdocs\www\example.com"

    SSLEngine on

    SSLCertificateFile "C:/apache-certs/www.example.com-chain.pem"

    SSLCertificateKeyFile "C:/apache-certs/www.example.com-key.pem"

</VirtualHost>

Em instalações XAMPP essa configuração geralmente fica em:

C:\xampp\apache\conf\extra\httpd-vhosts.conf

ou

C:\xampp\apache\conf\extra\httpd-ssl.conf

Após salvar as alterações, reinicie o Apache.

Liberando a porta 443 no Firewall do Windows

Para que o HTTPS funcione externamente, é necessário liberar a porta 443.

Abra um Prompt como Administrador:

netsh advfirewall firewall add rule name="HTTPS Apache" dir=in action=allow protocol=TCP localport=443

Também é recomendável garantir que a porta 80 permaneça liberada para validações futuras do Let’s Encrypt.

netsh advfirewall firewall add rule name="HTTP Apache" dir=in action=allow protocol=TCP localport=80

Configurando NAT, Proxy ou Port Forward

Caso o servidor esteja atrás de firewall corporativo, roteador ou balanceador de carga, será necessário encaminhar a porta HTTPS.

Configure:

Porta ExternaPorta Interna
TCP 443TCP 443
TCP 80TCP 80

Se houver um proxy reverso, certifique-se de que ele encaminhe corretamente as conexões HTTPS para o servidor Apache.

Sem esse encaminhamento o certificado pode ser emitido, mas os usuários externos não conseguirão acessar o site via HTTPS.

Renovação Automática dos Certificados

Os certificados Let’s Encrypt possuem validade limitada e precisam ser renovados periodicamente.

Uma das principais vantagens do Win-ACME é que ele cria automaticamente uma tarefa agendada no Windows para verificar e renovar certificados quando necessário.

Para verificar:

  1. Abra o Agendador de Tarefas (taskschd.msc);
  2. Localize a tarefa relacionada ao Win-ACME;
  3. Confirme que ela está habilitada.

A tarefa normalmente executa:

wacs.exe --renew

Para testar manualmente:

wacs.exe --renew --force

Reiniciando o Apache após a renovação

Quando o certificado for renovado, o Apache precisa recarregar os novos arquivos.

Uma abordagem simples é criar um arquivo:

@echo off

net stop Apache2.4

net start Apache2.4

E configurá-lo como ação pós-renovação no Win-ACME.

Dessa forma, sempre que o certificado for renovado, o Apache passará a utilizar automaticamente os novos arquivos.

Testando a configuração

Após concluir as etapas:

  1. Reinicie o Apache.
  2. Acesse:
https://www.example.com
  1. Verifique se o cadeado de segurança aparece no navegador.
  2. Utilize ferramentas online de validação SSL para confirmar a instalação.

Conclusão

A combinação de XAMPP, Apache, Let’s Encrypt e Win-ACME oferece uma solução gratuita e eficiente para proteger aplicações web hospedadas em Windows Server. Com a renovação automática configurada corretamente, o processo de gerenciamento de certificados praticamente deixa de exigir intervenção manual, reduzindo riscos de indisponibilidade por certificados expirados.

Além da configuração do Apache, lembre-se de validar a abertura das portas 80 e 443 no firewall e garantir o encaminhamento correto dessas portas em roteadores, firewalls ou proxies reversos. Esses detalhes costumam ser responsáveis pela maioria dos problemas durante a emissão e renovação dos certificados.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Enter Captcha Here : *

Reload Image