Skip to main content

Protegendo seu site GitHub Pages com HTTPS

O HTTPS adiciona uma camada de criptografia que impede outras pessoas de interceptar ou adulterar o tráfego do seu site. Você pode impor HTTPS para seu GitHub Pages site para redirecionar de forma transparente todas as solicitações HTTP para HTTPS.

Quem pode usar esse recurso?

O GitHub Pages está disponível em repositórios públicos com o GitHub Free e o GitHub Free para organizações, e em repositórios públicos e privados com o GitHub Pro, o GitHub Team, o GitHub Enterprise Cloud e o GitHub Enterprise Server. Consulte Planos do GitHub.

Pessoas com permissões de administrador para um repositório podem impor HTTPS para um GitHub Pages site.

Sobre HTTPS e GitHub Pages

Todos os sites GitHub Pages, incluindo os sites configurados corretamente com um domínio personalizado, suportam HTTPS e a imposição de HTTPS. Para saber mais sobre domínios personalizados, confira Sobre domínios personalizados e páginas de GitHub e Solução de problemas de domínios personalizados e páginas de GitHub.

GitHub Pages os sites criados após 15 de junho de 2016 e que usam github.io domínios são atendidos automaticamente por HTTPS.

Os sites do GitHub Pages não devem ser usados para transações confidenciais, como envio de senhas ou números de cartão de crédito.

Aviso

GitHub Pages os sites estarão disponíveis publicamente na Internet, mesmo que o repositório do site seja privado (se o plano ou a organização permitir). Se você tiver dados confidenciais no repositório do seu site, poderá removê-los antes de publicá-los. Para saber mais, confira Sobre repositórios.

Observação

O RFC3280 indica que o tamanho máximo do nome comum deve ser de 64 caracteres. Portanto, todo o nome de domínio do seu GitHub Pages site deve ter menos de 64 caracteres para que um certificado seja criado com êxito.

Ativar HTTPS para seu site GitHub Pages

  1. No GitHub, acesse o repositório do seu site.

  2. No nome do repositório, clique em Settings. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na seção "Código, planejamento e automação" da barra lateral, clique em Páginas.

  4. Em "GitHub Pages", selecione Impor HTTPS.

Solucionar problemas de provisionamento de certificado (Erro "O certificado ainda não foi criado")

Ao definir ou alterar o seu domínio personalizado nas configurações de páginas, uma verificação automática de DNS será iniciada. Essa verificação determina se as configurações de DNS estão configuradas para permitir GitHub a obtenção automática de um certificado. Se a verificação for bem-sucedida, GitHub coloca uma tarefa na fila para solicitar um certificado TLS ao Let's Encrypt. Ao receber um certificado válido, GitHub o carrega automaticamente nos servidores que fazem a terminação TLS para o Pages. Quando este processo é concluído com sucesso, uma marca de verificação é exibida junto ao seu nome de domínio personalizado.

O processo pode demorar um tempo. Se o processo não tiver sido concluído vários minutos depois de você clicar em Salvar, tente clicar em Remover ao lado do nome de domínio personalizado. Digite novamente o nome de domínio e clique em Salvar de novo. Isso irá cancelar e reiniciar o processo de provisionamento.

Resolver problemas com conteúdo misto

Se você habilitar HTTPS para seu GitHub Pages site, mas o HTML do site ainda fizer referência a imagens, CSS ou JavaScript via HTTP, o site estará servindo conteúdo misto. O fornecimento de conteúdo misto pode tornar o site menos seguro e causar problemas no carregamento de arquivos.

Para remover o conteúdo misto do site, verifique se todos os ativos são fornecidos por HTTPS alterando http:// para https:// no HTML do site.

Os ativos geralmente são encontrados nos seguintes locais:

  • Se o site usar o Jekyll, provavelmente, os arquivos HTML estarão na pasta _layouts.
  • Em geral, o CSS se encontra na seção <head> do arquivo HTML.
  • O JavaScript costuma estar na seção <head> ou logo antes da marca </body> de fechamento.
  • As imagens geralmente são encontradas na seção <body>.

Dica

Se você não conseguir encontrar seus recursos nos arquivos-fonte do seu site, tente pesquisar por http:// nos arquivos-fonte do seu site em seu editor de texto ou em GitHub.

Exemplos de ativos referenciados em um arquivo HTML

Tipo de ativoHTTPHTTPS
CSS<link rel="stylesheet" href="http://example.com/css/main.css"><link rel="stylesheet" href="https://example.com/css/main.css">
JavaScript<script type="text/javascript" src="http://example.com/js/main.js"></script><script type="text/javascript" src="https://example.com/js/main.js"></script>
Imagem<a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a><a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a>

Verificando a configuração do DNS

Em alguns casos, um certificado HTTPS não poderá ser gerado devido à configuração DNS do seu domínio personalizado. Isso pode ser causado por registros DNS extras ou registros que não apontam para os endereços IP para GitHub Pages.

Para garantir que um certificado HTTPS seja gerado corretamente, recomendamos as configurações a seguir. Quaisquer registros A, ANAME, AAAA, ALIAS adicionais com o host CNAME, ou registros @ que apontem para o seu subdomínio www ou para outro subdomínio personalizado que você queira usar com GitHub Pages, podem impedir a geração do certificado HTTPS.

CenárioTipos de registro DNSNome do registro DNSValores de registro DNS
Domínio Apex
(example.com)
A@185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Domínio Apex
(example.com)
AAAA@2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
Domínio Apex
(example.com)
ALIAS ou ANAME@
USERNAME.github.io ou
ORGANIZATION.github.io
Subdomínio
(www.example.com,
blog.example.com)CNAMESUBDOMAIN.example.com.
USERNAME.github.io ou
ORGANIZATION.github.io