Skip to main content

Proteger o 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 exigir HTTPS para seu site do GitHub Pages para redirecionar de forma transparente todas as solicitações HTTP para HTTPS.

GitHub Pages está disponível em repositórios públicos com GitHub Free e GitHub Free para organizações, e em repositórios públicos e privados com GitHub Pro, GitHub Team, GitHub Enterprise Cloud e GitHub Enterprise Server. Para obter mais informações, consulte os "produtos do GitHub".

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

Sobre HTTPS e o GitHub Pages

Todos os sites do GitHub Pages, incluindo os sites corretamente configurados com um domínio personalizado, permitem exigir HTTPS e HTTPS. Para obter mais informações sobre domínios personalizados, consulte "Sobre domínios personalizados e o GitHub Pages" e "Solucionar problemas de domínios personalizados e do GitHub Pages".

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.

Warning: Unless your enterprise uses Enterprise Managed Users, GitHub Pages sites are publicly available on the internet by default, even if the repository for the site is private or internal. You can publish a site privately by managing access control for the site. Otherwise, if you have sensitive data in your site's repository, you may want to remove the data before publishing. For more information, see "About repositories" and "Changing the visibility of your GitHub Pages site."

Observação: RFC3280 indica que o comprimento máximo do nome comum deve ter 64 caracteres. Portanto, todo o nome de domínio do seu site GitHub Pages deve ter menos de 64 caracteres de comprimento para que um certificado seja criado com sucesso.

Exigir HTTPS para o site do GitHub Pages

  1. Em GitHub Enterprise Cloud, acesse o repositório do seu site.

  2. No nome do seu repositório, clique em Configurações. Botão de configurações do repositório

  3. In the "Code and automation" section of the sidebar, click Pages.

  4. No "GitHub Pages," selecione Enforce HTTPS (Exigir HTTPS). Caixa de seleção Enforce HTTPS (Exigir HTTPS)

Solucionar problemas de provisionamento de certificado (Erro "Certificado ainda não 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. Esta verificação determina se as suas configurações de DNS estão configuradas para permitir que GitHub obtenha um certificado automaticamente. Se a verificação for bem-sucedida, GitHub coloca um trabalho em uma fila para solicitar um certificado TLS de Let's Encrypt. Ao receber um certificado válido, GitHub faz o upload automaticamente para os servidores que administram o o cancelamento do TLS para o Pages. Quando este processo é concluído com sucesso, uma nota de seleção é exibida ao lado do seu nome de domínio personalizado.

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

Resolver problemas com conteúdo misto

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

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

Os ativos geralmente são encontrados nos seguintes locais:

  • Caso seu site utilize o Jekyll, provavelmente os arquivos HTML estarão na pasta _layouts.
  • O CSS fica na seção <head> do arquivo HTML.
  • O JavaScript geralmente está na seção <head> ou um pouco antes da tag de encerramento </body>.
  • As imagens geralmente estão na seção <body>.

Dica: se você não conseguir encontrar seus ativos nos arquivos de origem do site, tente pesquisar neles por http no editor de texto ou no GitHub Enterprise Cloud.

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="Logotipo"></a><A HREF="https://www.somesite.com"><IMG SRC="https://www.example.com/logo.jpg" alt="Logotipo"></a>