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は、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。 詳細については、「GitHub's products」を参照してください。

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 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. GitHubで、サイトのリポジトリにアクセスしてください。

  2. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  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. 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。 サイトの既定のドメインの詳細については、「GitHub Pages について」を参照してください。

    警告: ワイルドカード DNS レコード (*.example.com など) を使用しないことを強くお勧めします。 ワイルドカード DNS レコードを使用すると、サブドメインが検証済みでも、そのいずれかで GitHub Pages サイトを誰でもホストできてしまいます。 詳細については、「GitHub Pages のカスタム ドメインの検証」を参照してください。

  6. [ターミナル][ターミナル][Git 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. 静的サイト ジェネレータを使用してローカルでサイトを構築し、生成されたファイルを GitHub にプッシュする場合、ローカルのリポジトリに CNAME ファイルを追加したコミットをプルしてください。 詳細については、「カスタム ドメインと GitHub Pages のトラブルシューティング」を参照してください。

  9. 必要に応じて、サイトに HTTPS 暗号化を適用するには、 [HTTPS の適用] を選択します。 このオプションが利用できるようになるには、最大で24時間かかります。 詳細については、「HTTPS で GitHub Pages サイトを保護する」を参照してください。 カスタム ドメインの [HTTPS の適用] オプション

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.

カスタム ドメインとして Apex ドメインを使用している場合は、www サブドメインも設定することをお勧めします。 DNSプロバイダを通じて各ドメインの種類のための正しいレコードを設定しているなら、GitHub Pagesは自動的にドメイン間のリダイレクトを生成します。 たとえば、www.example.com をご自分のサイトのカスタム ドメインとして構成し、GitHub Pages DNS レコードを Apex と www のドメインに設定している場合、example.comwww.example.com にリダイレクトされます。 自動リダイレクトは www サブドメインにのみ適用されることに注意してください。 自動リダイレクトは、blog などのその他のサブドメインには適用されません。 For more information, see "Configuring a subdomain."

  1. GitHubで、サイトのリポジトリにアクセスしてください。

  2. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  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. 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。

    • To create an ALIAS or ANAME record, point your apex domain to the default domain for your site. サイトの既定のドメインの詳細については、「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

    警告: ワイルドカード DNS レコード (*.example.com など) を使用しないことを強くお勧めします。 ワイルドカード DNS レコードを使用すると、サブドメインが検証済みでも、そのいずれかで GitHub Pages サイトを誰でもホストできてしまいます。 詳細については、「GitHub Pages のカスタム ドメインの検証」を参照してください。

  6. [ターミナル][ターミナル][Git 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. 静的サイト ジェネレータを使用してローカルでサイトを構築し、生成されたファイルを GitHub にプッシュする場合、ローカルのリポジトリに CNAME ファイルを追加したコミットをプルしてください。 詳細については、「カスタム ドメインと GitHub Pages のトラブルシューティング」を参照してください。

  9. 必要に応じて、サイトに HTTPS 暗号化を適用するには、 [HTTPS の適用] を選択します。 このオプションが利用できるようになるには、最大で24時間かかります。 詳細については、「HTTPS で GitHub Pages サイトを保護する」を参照してください。 カスタム ドメインの [HTTPS の適用] オプション

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. 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。 サイトの既定のドメインの詳細については、「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. GitHubで、サイトのリポジトリにアクセスしてください。

  2. リポジトリ名の下の [ 設定] をクリックします。 リポジトリの設定ボタン

  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

GitHub Pages サイトが無効になっているが、カスタム ドメインが設定されている場合、ドメインの乗っ取りのリスクがあります。 サイトが無効な間に、DNS プロバイダでカスタムドメインを設定していると、サブドメインのいずれかで誰かにサイトをホストされてしまう恐れがあります。

カスタム ドメインを確認すると、他の GitHub ユーザーが自分のリポジトリでそのドメインを使用できなくなります。 ドメインが確認されておらず、GitHub Pages サイトが無効になっている場合は、DNS プロバイダーで DNS レコードを直ちに更新または削除する必要があります。 For more information, see "Verifying your custom domain for GitHub Pages."

Further reading