Como Configurar SSL e Certificado HTTPS no Website do Servidor MU
Aprenda a instalar e configurar certificado SSL/TLS no site do seu servidor MU Online com Let's Encrypt, IIS e Apache/XAMPP passo a passo.
Proteger o site do seu servidor MU Online com HTTPS é essencial para a credibilidade do servidor e para a segurança dos dados dos jogadores — incluindo login, cadastro e painel de controle. Este guia cobre a instalação do certificado SSL em ambientes IIS (Windows Server) e Apache/XAMPP, os dois stacks mais usados em servidores MU privados.
Pré-requisitos
Antes de começar, garanta que você tem:
- Domínio próprio apontando para o IP do servidor (ex:
meuservidor.com→ IP do VPS) - Acesso administrativo ao Windows Server (2008/2012/2016/2019)
- IIS instalado com seu site MU já funcionando em HTTP (porta 80)
- PowerShell 5.1+ disponível
Opção A: Certificado Gratuito com Let's Encrypt + win-acme (IIS)
Passo 1 — Baixar o win-acme
- Acesse o servidor via RDP como administrador.
- Abra o PowerShell como administrador e crie a pasta de trabalho:
mkdir C:\ssl-tools
cd C:\ssl-tools
- Baixe o win-acme (wacs.exe) do repositório oficial em
https://github.com/win-acme/win-acme/releases— escolha a versãowacs.exepara Windows x64. - Extraia o conteúdo em
C:\ssl-tools\wacs\.
Passo 2 — Abrir a porta 80 no firewall
O Let's Encrypt valida o domínio via HTTP na porta 80. Confirme que ela está aberta:
netsh advfirewall firewall add rule name="HTTP-80" protocol=TCP dir=in localport=80 action=allow
netsh advfirewall firewall add rule name="HTTPS-443" protocol=TCP dir=in localport=443 action=allow
Passo 3 — Executar o win-acme
cd C:\ssl-tools\wacs
.\wacs.exe
No menu interativo:
- Escolha N (New certificate — simple for IIS)
- Selecione o site IIS do seu servidor MU na lista
- Confirme o domínio (ex:
meuservidor.comewww.meuservidor.com) - Aceite os termos e forneça seu e-mail para notificações de expiração
- O win-acme solicita o certificado, faz a validação HTTP-01 e instala automaticamente no IIS
win-acme renew que renova o certificado a cada 90 dias sem intervenção manual.Passo 4 — Configurar o Binding HTTPS no IIS
Abra o IIS Manager:
- Expanda Sites → clique no site do seu servidor MU
- No painel direito, clique em Bindings...
- Clique em Add e configure:
- Type:
https - IP Address:
All Unassigned - Port:
443 - SSL certificate: selecione o certificado
meuservidor.cominstalado pelo win-acme
- Clique em OK e feche
Passo 5 — Forçar redirecionamento HTTP para HTTPS
Edite o arquivo web.config na raiz do site MU (normalmente em C:\inetpub\wwwroot\meuservidor\web.config) e adicione dentro de <system.webServer>:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
https://iis.net/downloads/microsoft/url-rewrite e instale antes de editar o web.config.Opção B: Certificado Autoassinado para Ambientes Internos/Testes
Use esta opção apenas para testes locais ou redes internas — navegadores exibirão aviso de segurança.
Passo 1 — Gerar o certificado via PowerShell
$cert = New-SelfSignedCertificate `
-DnsName "meuservidor.com", "localhost" `
-CertStoreLocation "cert:\LocalMachine\My" `
-NotAfter (Get-Date).AddYears(2) `
-KeyAlgorithm RSA `
-KeyLength 2048
Write-Host "Thumbprint: $($cert.Thumbprint)"
Passo 2 — Instalar no IIS
Siga os mesmos passos da seção anterior (Passo 4) para adicionar o binding HTTPS, selecionando o certificado autoassinado na lista.
Opção C: Certificado SSL no Apache/XAMPP
Para servidores MU que usam XAMPP com PHP para o site e painel web:
Passo 1 — Habilitar o módulo SSL no XAMPP
Edite C:\xampp\apache\conf\httpd.conf e descomente (remova o #):
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Passo 2 — Gerar chave e certificado com OpenSSL
cd C:\xampp\apache
bin\openssl.exe req -x509 -nodes -days 730 -newkey rsa:2048 ^
-keyout conf\ssl.key\meuservidor.key ^
-out conf\ssl.crt\meuservidor.crt ^
-subj "/CN=meuservidor.com/O=MeuServidor MU/C=BR"
Passo 3 — Configurar o VirtualHost HTTPS
Edite C:\xampp\apache\conf\extra\httpd-ssl.conf e localize o bloco <VirtualHost _default_:443>. Ajuste:
<VirtualHost *:443>
ServerName meuservidor.com
DocumentRoot "C:/xampp/htdocs/meusite"
SSLEngine on
SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/meuservidor.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/meuservidor.key"
<Directory "C:/xampp/htdocs/meusite">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Passo 4 — Redirecionar HTTP para HTTPS no Apache
Crie ou edite o arquivo C:\xampp\htdocs\meusite\.htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Reinicie o Apache pelo painel XAMPP e teste acessando https://meuservidor.com.
Ajustes no Banco de Dados MU Online
Após ativar HTTPS, verifique e atualize as URLs armazenadas no banco de dados que referenciam o site:
-- Banco: MuOnline ou MuWebConfig (varia por versão do WebEngine)
-- Atualizar URL base do site no painel de configuração
USE [MuWebConfig]
GO
UPDATE [dbo].[SiteSettings]
SET [SiteUrl] = 'https://meuservidor.com'
WHERE [SettingKey] = 'BaseUrl';
-- Se usar tabela de configuração do WebEngine:
UPDATE [dbo].[WebConfig]
SET [ConfigValue] = 'https://meuservidor.com'
WHERE [ConfigKey] IN ('SiteURL', 'WebsiteUrl', 'BaseURL');
Verificando a Instalação SSL
Teste via PowerShell
# Verifica se o certificado é válido e quando expira
$result = [System.Net.HttpWebRequest]::Create("https://meuservidor.com").GetResponse()
$cert = $result.ServicePoint.Certificate
Write-Host "Emitido para: $($cert.Subject)"
Write-Host "Expira em: $($cert.GetExpirationDateString())"
Teste via curl
curl -I https://meuservidor.com
Resposta esperada:
HTTP/2 200
content-type: text/html; charset=utf-8
strict-transport-security: max-age=31536000
Configurando HSTS (Segurança Avançada)
Adicione o header HSTS para forçar HTTPS no nível do navegador. No IIS, edite o web.config:
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security"
value="max-age=31536000; includeSubDomains" />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
preload antes de confirmar que HTTPS funciona perfeitamente. Uma vez no preload list dos navegadores, remover HSTS pode levar meses.Solução de Problemas Comuns
| Problema | Causa Provável | Solução | |
|---|---|---|---|
| ERR_SSL_PROTOCOL_ERROR | Binding HTTPS não configurado no IIS | Adicionar binding na porta 443 com o certificado | |
| Certificado expirado | Renovação automática falhou | Executar .\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/" | |
| Mixed Content no site | URLs hardcoded como HTTP no HTML/CSS/JS | Buscar e substituir http://meuservidor.com por https://meuservidor.com nos arquivos | |
| Port 443 já em uso | Outro serviço usando a porta | `netstat -ano | findstr :443` para identificar o processo |
| Erro 403 no HTTPS | Permissões de pasta no IIS | Dar permissão de leitura ao usuário IIS_IUSRS na pasta do site |
Próximos Passos
Com o SSL configurado, considere também:
- Configurar renovação automática monitorada via script PowerShell com envio de e-mail em caso de falha
- Instalar certificado wildcard (
*.meuservidor.com) para cobrir subdomínios comopainel.meuservidor.com - Revisar as configurações de segurança do SQL Server usado pelo site para aceitar apenas conexões autenticadas
Perguntas frequentes
O certificado Let's Encrypt funciona com IP direto?
Não. Let's Encrypt exige um domínio válido (ex: meuservidor.com). Para IPs, use um certificado autoassinado com OpenSSL ou adquira um certificado comercial de uma CA reconhecida.
Meu painel webEngineNET quebrou após ativar HTTPS. O que fazer?
Verifique se o binding no IIS está configurado para a porta 443 com o certificado correto. Acesse IIS Manager → Sites → seu site → Bindings → adicione HTTPS na porta 443. Confirme também que o web.config possui a regra de rewrite para HTTP→HTTPS.
Com qual frequência o certificado Let's Encrypt precisa ser renovado?
A cada 90 dias. Configure a renovação automática via win-acme com tarefa agendada (Task Scheduler) do Windows para evitar expiração e interrupção do site.
O registro de conta no site parou de funcionar após SSL. O que verificar?
Confirme que a connection string no web.config aponta para o SQL Server correto e que o IIS Application Pool tem permissão de rede. Verifique também se o formulário de cadastro usa action com URL absoluta HTTPS.