O Microsoft IIS (Internet Information Services) usa o formato PFX para certificados SSL — diferente dos arquivos PEM que o GetHTTPS e a maioria das ferramentas baseadas em Linux produzem. Este guia cobre a conversão do seu certificado e a instalação no IIS 10.
Pré-requisitos
- Windows Server com IIS 10 instalado
- Arquivos de certificado do GetHTTPS:
cert.pem,privkey.pem,chain.pem - OpenSSL instalado (vem com o Git for Windows, ou instale separadamente)
Etapa 1: Converter PEM para PFX
O IIS não consegue ler arquivos PEM diretamente. Converta para o formato PFX usando OpenSSL:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
Você será solicitado a definir uma senha de exportação — lembre-se dela para a etapa de importação.
Não tem OpenSSL? Se você tem o Git for Windows instalado, o OpenSSL está em
C:\Program Files\Git\usr\bin\openssl.exe. Ou baixe em slproweb.com/products/Win32OpenSSL.html.
Para mais informações sobre formatos de certificado: PEM, PFX, DER explicados
Etapa 2: Importar o PFX no IIS
- Abra o Gerenciador do IIS (execute
inetmgr) - Clique no nome do seu servidor no painel esquerdo
- Clique duas vezes em Certificados de Servidor no painel central
- Clique em Importar… no painel de Ações à direita
- Navegue até o arquivo
certificate.pfx - Digite a senha de exportação que você definiu na Etapa 1
- Selecione o armazenamento de certificados: Web Hosting (ou Pessoal)
- Clique em OK
O certificado agora aparece na lista de Certificados de Servidor.
Etapa 3: Vincular HTTPS ao seu site
- No Gerenciador do IIS, expanda Sites no painel esquerdo
- Clique com o botão direito no seu site → Editar Ligações…
- Clique em Adicionar…
- Defina:
- Tipo: https
- Porta: 443
- Nome do host:
yourdomain.com(deixe em branco para todos os nomes de host) - Certificado SSL: selecione o certificado que você acabou de importar
- Clique em OK
- Repita para
www.yourdomain.comse necessário
Etapa 4: Redirecionar HTTP para HTTPS
Instale o módulo URL Rewrite (se ainda não estiver instalado), depois adicione ao web.config do seu site:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" 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>
</system.webServer>
</configuration>
Etapa 5: Verificar
Abra https://yourdomain.com no navegador. Clique no cadeado para verificar os detalhes do certificado.
Verificação via PowerShell:
# Verificar o certificado vinculado à porta 443
netsh http show sslcert
Solução de problemas
”A specified logon session does not exist”
A chave privada não foi importada corretamente. Re-exporte o arquivo PFX com:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:YourPassword
Certifique-se de que o PFX foi criado a partir de arquivos de chave + certificado correspondentes.
O certificado não aparece no dropdown de vinculação
A importação pode ter falhado silenciosamente. Verifique Visualizador de Eventos → Logs do Windows → Aplicativo para erros. Certifique-se de que a senha do PFX está correta e o arquivo não está corrompido.
”This site is not secure” após a vinculação
Verifique se a cadeia de certificados está completa. O arquivo chain.pem deve ser incluído na conversão PFX (-certfile chain.pem). Sem ele, os navegadores não conseguem verificar a cadeia de confiança.
Perguntas frequentes
Posso usar um certificado Let’s Encrypt com IIS?
Sim. Certificados Let’s Encrypt funcionam com qualquer servidor, incluindo IIS. A única etapa extra é converter PEM para o formato PFX. O GetHTTPS fornece arquivos PEM; o comando OpenSSL acima os converte.
Existe uma ferramenta como o Certbot para IIS?
O win-acme (anteriormente letsencrypt-win-simple) é o cliente ACME mais popular para Windows/IIS. Ele lida com emissão de certificado, conversão PFX, vinculação ao IIS e renovação automática em uma única ferramenta. Use-o se quiser Let’s Encrypt totalmente automatizado no IIS.
Como faço para renovar no IIS?
- Obtenha um novo certificado do GetHTTPS
- Converta para PFX:
openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem - Importe o novo PFX em Gerenciador do IIS → Certificados de Servidor
- Atualize a vinculação do site para usar o novo certificado
- Remova o certificado antigo dos Certificados de Servidor
Para renovação automatizada, considere o win-acme — ele lida com todo o ciclo automaticamente.
O IIS suporta certificados ECDSA/ECC?
O IIS 10 no Windows Server 2016+ suporta certificados ECDSA. O GetHTTPS gera ECDSA P-256 por padrão, que funciona com IIS moderno. Versões mais antigas do IIS (8.5 e abaixo) podem exigir certificados RSA.
Posso usar IIS com múltiplos sites no mesmo IP?
Sim. O IIS 8+ suporta SNI (Server Name Indication), que permite múltiplos certificados SSL no mesmo endereço IP. Ao adicionar a vinculação HTTPS, marque “Exigir Indicação de Nome do Servidor” e insira o nome do host. Cada site pode ter seu próprio certificado.
Como encontro o OpenSSL no Windows?
O OpenSSL não está incluído no Windows por padrão. Fontes comuns:
- Git for Windows inclui em
C:\Program Files\Git\usr\bin\openssl.exe - Chocolatey:
choco install openssl - Builds Win32/Win64: baixe em slproweb.com
Após instalar, adicione ao seu PATH ou use o caminho completo nos comandos.