O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Tutoriais

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.

EQ Equipe ViciadosMU · Atualizado em 3 jul 2026 · ⏱ 12 min de leitura

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
Nota: Se você usa XAMPP ao invés de IIS, pule para a seção Configurando SSL no Apache/XAMPP. Para webEngineNET, siga a seção IIS pois ele roda sobre o IIS.

Opção A: Certificado Gratuito com Let's Encrypt + win-acme (IIS)

Passo 1 — Baixar o win-acme

  1. Acesse o servidor via RDP como administrador.
  2. Abra o PowerShell como administrador e crie a pasta de trabalho:
mkdir C:\ssl-tools
cd C:\ssl-tools
  1. Baixe o win-acme (wacs.exe) do repositório oficial em https://github.com/win-acme/win-acme/releases — escolha a versão wacs.exe para Windows x64.
  2. 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:

  1. Escolha N (New certificate — simple for IIS)
  2. Selecione o site IIS do seu servidor MU na lista
  3. Confirme o domínio (ex: meuservidor.com e www.meuservidor.com)
  4. Aceite os termos e forneça seu e-mail para notificações de expiração
  5. O win-acme solicita o certificado, faz a validação HTTP-01 e instala automaticamente no IIS
Dica: O win-acme cria automaticamente uma tarefa no Windows Task Scheduler chamada 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:

  1. Expanda Sites → clique no site do seu servidor MU
  2. No painel direito, clique em Bindings...
  3. Clique em Add e configure:
  • Type: https
  • IP Address: All Unassigned
  • Port: 443
  • SSL certificate: selecione o certificado meuservidor.com instalado pelo win-acme
  1. 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>
Atenção: Para que o módulo de Rewrite funcione no IIS, o URL Rewrite Module deve estar instalado. Baixe em 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');
Nota: O nome exato das tabelas varia por versão do WebEngine (webEngineNET, MuCMS, etc.). Use o SQL Server Management Studio para inspecionar as tabelas disponíveis no banco de dados do painel.

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>
Atenção: Não ative HSTS com 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

ProblemaCausa ProvávelSolução
ERR_SSL_PROTOCOL_ERRORBinding HTTPS não configurado no IISAdicionar binding na porta 443 com o certificado
Certificado expiradoRenovação automática falhouExecutar .\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"
Mixed Content no siteURLs hardcoded como HTTP no HTML/CSS/JSBuscar e substituir http://meuservidor.com por https://meuservidor.com nos arquivos
Port 443 já em usoOutro serviço usando a porta`netstat -anofindstr :443` para identificar o processo
Erro 403 no HTTPSPermissões de pasta no IISDar 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 como painel.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.

EQ

Equipe ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Continue lendo

Artigos relacionados