Skip to main content

Managing a custom domain for your GitHub Pages site

You can set up or update certain DNS records and your repository settings to point the default domain for your GitHub Pages site to a custom domain.

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, confira "produtos de GitHub".

People with admin permissions for a repository can configure a custom domain for a GitHub Pages site.

About custom domain configuration

Make sure you add your custom domain to your GitHub Pages site before configuring your custom domain with your DNS provider. Configuring your custom domain with your DNS provider without adding your custom domain to GitHub Enterprise Cloud could result in someone else being able to host a site on one of your subdomains.

The dig command, which can be used to verify correct configuration of DNS records, is not included in Windows. Before you can verify that your DNS records are configured correctly, you must install BIND.

Note: DNS changes can take up to 24 hours to propagate.

Configuring a subdomain

To set up a www or custom subdomain, such as www.example.com or blog.example.com, you must add your domain in the repository settings. After that, configure a CNAME record with your DNS provider.

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

  2. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

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

  4. Under "Custom domain", type your custom domain, then click Save. If you are publishing your site from a branch, this will create a commit that adds a CNAME file to the root of your source branch. If you are publishing your site with a custom GitHub Actions workflow , no CNAME file is created. For more information about your publishing source, see "Configuring a publishing source for your GitHub Pages site." Save custom domain button

    Note: If your custom domain is an internationalized domain name, you must enter the Punycode encoded version.

    For more information on Punycodes, see Internationalized domain name.

  5. Navigate to your DNS provider and create a CNAME record that points your subdomain to the default domain for your site. For example, if you want to use the subdomain www.example.com for your user site, create a CNAME record that points www.example.com to <user>.github.io. If you want to use the subdomain another.example.com for your organization site, create a CNAME record that points another.example.com to <organization>.github.io. The CNAME record should always point to <user>.github.io or <organization>.github.io, excluding the repository name. Para obter mais informações sobre como criar o registro correto, consulte a documentação do provedor do DNS. Para obter mais informações sobre o domínio padrão de seu site, confira "Sobre GitHub Pages".

    Aviso: é altamente recomendável não usar registros DNS curinga, como *.example.com. O registro DNS curinga permite que qualquer pessoa hospede um site do GitHub Pages em um dos subdomínios que você tem, mesmo quando eles são verificados. Para obter mais informações, confira "Como verificar seu domínio personalizado do GitHub Pages".

  6. Abra TerminalTerminalGit Bash.

  7. To confirm that your DNS record configured correctly, use the dig command, replacing WWW.EXAMPLE.COM with your subdomain.

    $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd
        > ;WWW.EXAMPLE.COM.                    IN      A
        > WWW.EXAMPLE.COM.             3592    IN      CNAME   YOUR-USERNAME.github.io.
        > YOUR-USERNAME.github.io.      43192   IN      CNAME   GITHUB-PAGES-SERVER .
        > GITHUB-PAGES-SERVER .         22      IN      A       192.0.2.1
  8. Se você usar um gerador de site estático para criar seu site localmente e efetuar push dos arquivos gerados para o GitHub Enterprise Cloud, efetue pull do commit que adicionou o arquivo CNAME ao repositório local. Para obter mais informações, confira "Solução de problemas de domínios personalizados e do GitHub Pages".

  9. Opcionalmente, para impor a criptografia HTTPS no seu site, selecione Impor HTTPS. Pode levar até 24 horas para que esta opção fique disponível. Para obter mais informações, confira "Como proteger seu site do GitHub Pages com HTTPS". Opção Impor HTTPS para domínios personalizados

Configuring an apex domain

To set up an apex domain, such as example.com, you must configure a custom domain in your repository settings and at least one ALIAS, ANAME, or A record with your DNS provider.

Se você estiver usando um domínio apex como seu domínio personalizado, recomendaremos também configurar um subdomínio www. Se você configurar os registros corretos para cada tipo de domínio através do seu provedor DNS, GitHub Pages irá automaticamente criar redirecionamentos entre os domínios. Por exemplo, se você configurar www.example.com como o domínio personalizado para seu site e tiver os registros DNS do GitHub Pages configurados para o apex e os domínios www, example.com fará o redirecionamento para www.example.com. Observe que os redirecionamentos automáticos só se aplicam ao subdomínio www. Os redirecionamentos automáticos não se aplicam a nenhum outro subdomínio, como blog. For more information, see "Configuring a subdomain."

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

  2. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

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

  4. Under "Custom domain", type your custom domain, then click Save. If you are publishing your site from a branch, this will create a commit that adds a CNAME file to the root of your source branch. If you are publishing your site with a custom GitHub Actions workflow , no CNAME file is created. For more information about your publishing source, see "Configuring a publishing source for your GitHub Pages site." Save custom domain button

  5. Navigate to your DNS provider and create either an ALIAS, ANAME, or A record. You can also create AAAA records for IPv6 support. Para obter mais informações sobre como criar o registro correto, consulte a documentação do provedor do DNS.

    • To create an ALIAS or ANAME record, point your apex domain to the default domain for your site. Para obter mais informações sobre o domínio padrão de seu site, confira "Sobre GitHub Pages".
    • To create A records, point your apex domain to the IP addresses for GitHub Pages.
      185.199.108.153
      185.199.109.153
      185.199.110.153
      185.199.111.153
    • To create AAAA records, point your apex domain to the IP addresses for GitHub Pages.
      2606:50c0:8000::153
      2606:50c0:8001::153
      2606:50c0:8002::153
      2606:50c0:8003::153

    Aviso: é altamente recomendável não usar registros DNS curinga, como *.example.com. O registro DNS curinga permite que qualquer pessoa hospede um site do GitHub Pages em um dos subdomínios que você tem, mesmo quando eles são verificados. Para obter mais informações, confira "Como verificar seu domínio personalizado do GitHub Pages".

  6. Abra TerminalTerminalGit Bash.

  7. To confirm that your DNS record configured correctly, use the dig command, replacing EXAMPLE.COM with your apex domain. Confirm that the results match the IP addresses for GitHub Pages above.

    • For A records.
      $ dig EXAMPLE.COM +noall +answer -t A
      > EXAMPLE.COM    3600    IN A     185.199.108.153
      > EXAMPLE.COM    3600    IN A     185.199.109.153
      > EXAMPLE.COM    3600    IN A     185.199.110.153
      > EXAMPLE.COM    3600    IN A     185.199.111.153
    • For AAAA records.
      $ dig EXAMPLE.COM +noall +answer -t AAAA
      > EXAMPLE.COM     3600    IN AAAA     2606:50c0:8000::153
      > EXAMPLE.COM     3600    IN AAAA     2606:50c0:8001::153
      > EXAMPLE.COM     3600    IN AAAA     2606:50c0:8002::153
      > EXAMPLE.COM     3600    IN AAAA     2606:50c0:8003::153
  8. Se você usar um gerador de site estático para criar seu site localmente e efetuar push dos arquivos gerados para o GitHub Enterprise Cloud, efetue pull do commit que adicionou o arquivo CNAME ao repositório local. Para obter mais informações, confira "Solução de problemas de domínios personalizados e do GitHub Pages".

  9. Opcionalmente, para impor a criptografia HTTPS no seu site, selecione Impor HTTPS. Pode levar até 24 horas para que esta opção fique disponível. Para obter mais informações, confira "Como proteger seu site do GitHub Pages com HTTPS". Opção Impor HTTPS para domínios personalizados

Configuring an apex domain and the www subdomain variant

When using an apex domain, we recommend configuring your GitHub Pages site to host content at both the apex domain and that domain's www subdomain variant.

To set up a www subdomain alongside the apex domain, you must first configure an apex domain by creating an ALIAS, ANAME, or A record with your DNS provider. For more information, see "Configuring an apex domain."

After you configure the apex domain, you must configure a CNAME record with your DNS provider.

  1. Navigate to your DNS provider and create a CNAME record that points www.example.com to the default domain for your site: <user>.github.io or <organization>.github.io. Do not include the repository name. Para obter mais informações sobre como criar o registro correto, consulte a documentação do provedor do DNS. Para obter mais informações sobre o domínio padrão de seu site, confira "Sobre GitHub Pages".
  2. To confirm that your DNS record configured correctly, use the dig command, replacing WWW.EXAMPLE.COM with your www subdomain variant.
    $ dig WWW.EXAMPLE.COM +nostats +nocomments +nocmd
        > ;WWW.EXAMPLE.COM                     IN      A
        > WWW.EXAMPLE.COM.              3592    IN      CNAME   YOUR-USERNAME.github.io.
        > YOUR-USERNAME.github.io.      43192   IN      CNAME   GITHUB-PAGES-SERVER.
        > GITHUB-PAGES-SERVER.         22      IN      A       192.0.2.1

Removing a custom domain

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

  2. Abaixo do nome do repositório, clique em Configurações. Botão Configurações do repositório

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

  4. Under "Custom domain," click Remove. Save custom domain button

Securing your custom domain

Se o site do GitHub Pages estiver desabilitado, mas tiver um domínio personalizado configurado, ele correrá o risco de uma tomada de controle de domínio. Ter um domínio personalizado configurado com o provedor DNS enquanto o site está desabilitado pode fazer com que outra pessoa acabe hospedando um site em um de seus subdomínios.

Verificar seu domínio personalizado impede que outros usuários do GitHub usem seu domínio com os repositórios deles. Se o seu domínio não for verificado e o seu site do GitHub Pages estiver desabilitado, você deverá atualizar ou remover imediatamente seus registros DNS com o provedor DNS. For more information, see "Verifying your custom domain for GitHub Pages."

Further reading