Skip to main content

GitHub Pages サイトのカスタムドメインを管理する

特定の DNS レコードとリポジトリ設定を設定または更新し、GitHub Pages サイトのデフォルトドメインをカスタムドメインに指定することができます。

GitHub Pagesは、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。 詳しい情報については「GitHubの製品」を参照してください。

リポジトリの管理者権限があるユーザは、GitHub Pages サイトのカスタムドメインを設定できます。

カスタムドメインの設定について

DNS プロバイダでカスタムドメインを設定する前に、必ず GitHub Pages サイトをカスタムドメインに追加してください。 カスタムドメインを GitHub に追加せずに DNS プロバイダに設定すると、別のユーザがあなたのサブドメインにサイトをホストできることになります。

DNS レコードの設定が正しいかどうかを検証するために利用できるdig コマンドは、Windows には含まれていません。 DNS レコードが正しく設定されているかを検証する前に、BIND をインストールする必要があります。

注釈: DNS の変更が伝播するには、最大 24 時間かかります。

サブドメインを設定する

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. その後、DNS プロバイダで CNAME レコードを設定します。

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

  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン

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

  4. "Custom domain(カスタムドメイン)" の下で、カスタムドメインを入力して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." カスタムドメインの保存ボタン

  5. お使いの DNS プロバイダにアクセスし、サブドメインがサイトのデフォルトドメインを指す CNAME レコードを作成します。 たとえば、サイトで www.example.com というサブドメインを使いたい場合、www.example.com<user>.github.io を指すCNAME レコードを作成します。 Organization サイトで www.anotherexample.com というサブドメインを使用する場合、www.anotherexample.com<organization>.github.io を指すCNAME レコードを作成します。 CNAME レコードは、リポジトリ名を除いて、常に<user>.github.io または <organization>.github.io を指している必要があります。 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。 サイトのデフォルトドメインに関する詳しい情報については「GitHub Pagesについて」を参照してください。

    警告: *.example.com など、ワイルドカード DNS レコードは使わないでください。 ワイルドカード DNS レコードにより、あなたのサブドメインの 1 つで GitHub Pagesサイトを誰でもホストできるようになります。

  6. ターミナルターミナルGit Bashを開いてください。

  7. DNS レコードが正しくセットアップされたことを確認するには、 dig コマンドを使います。WWW.EXAMPLE.COM は、お使いのサブドメインに置き換えてください。

    $ 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暗号化を強制したい場合は、Enforce HTTPS(HTTPSを強制)を選択してください。 このオプションが利用できるようになるには、最大で24時間かかります。 詳しい情報についてはHTTPSでGitHub Pagesサイトをセキュアにするを参照してください。 カスタムドメインのHTTPS強制オプション

Apexドメインを設定する

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といったようなその他のサブドメインには適用されません。 詳しい情報については、「サブドメインを設定する」を参照してください。

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

  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン

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

  4. "Custom domain(カスタムドメイン)" の下で、カスタムドメインを入力して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." カスタムドメインの保存ボタン

  5. DNS プロバイダに移動し、ALIASANAME、または A レコードを作成します。 IPv6サポートのためにAAAAレコードを作成することもできます。 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。

    • ALIASまたはANAMEレコードを作成するには、Apexドメインをサイトのデフォルトドメインにポイントします。 サイトのデフォルトドメインに関する詳しい情報については「GitHub Pagesについて」を参照してください。
    • A レコードを作成するには、Apex ドメインが GitHub Pages の IP アドレスを指すようにします。
      185.199.108.153
      185.199.109.153
      185.199.110.153
      185.199.111.153
    • AAAA レコードを作成するには、Apex ドメインが GitHub Pages の IP アドレスを指すようにします。
      2606:50c0:8000::153
      2606:50c0:8001::153
      2606:50c0:8002::153
      2606:50c0:8003::153

    警告: *.example.com など、ワイルドカード DNS レコードは使わないでください。 ワイルドカード DNS レコードにより、あなたのサブドメインの 1 つで GitHub Pagesサイトを誰でもホストできるようになります。

  6. ターミナルターミナルGit Bashを開いてください。

  7. DNS レコードが正しく設定されたことを確認するには、 dig コマンドを使います。EXAMPLE.COM は、お使いの Apex ドメインに置き換えてください。 結果が、上記の GitHub Pages の IP アドレスに一致することを確認します。

    • Aレコードの場合。
      $ 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
    • AAAAレコードの場合。
      $ 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暗号化を強制したい場合は、Enforce HTTPS(HTTPSを強制)を選択してください。 このオプションが利用できるようになるには、最大で24時間かかります。 詳しい情報についてはHTTPSでGitHub Pagesサイトをセキュアにするを参照してください。 カスタムドメインのHTTPS強制オプション

Apexドメインとwwwサブドメイン付きのドメインの設定

Apexドメインを使う場合、コンテンツをApexドメインとwwwサブドメイン付きのドメインの双方でホストするようGitHub Pagesサイトを設定することをおすすめします。

Apexドメインと共にwwwサブドメインをセットアップするには、DNSプロバイダでALIASANAMEAのいずれかのレコードが作成することによって、まずApexドメインを設定しします。 詳しい情報については「Apexドメインの設定」を参照してください。

Apexドメインを設定したら、DNSプロバイダでCNAMEレコードを設定しなければなりません。

  1. DNSプロバイダにアクセスして、www.example.comがサイトのデフォルトドメインの<user>.github.ioもしくは<organization>.github.ioを指すようにするCNAMEレコードを作成してください。 リポジトリ名は含めないでください。 正しいレコードの作成方法に関する詳しい情報については、DNSプロバイダのドキュメンテーションを参照してください。 サイトのデフォルトドメインに関する詳しい情報については「GitHub Pagesについて」を参照してください。
  2. DNS レコードが正しくセットアップされたことを確認するには、 dig コマンドを使います。WWW.EXAMPLE.COM は、wwwサブドメイン付きのドメインに置き換えてください。
    $ 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

カスタムドメインの削除

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

  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン

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

  4. "Custom domain(カスタムドメイン)"の下で、Remove(削除)をクリックしてください。 カスタムドメインの保存ボタン

カスタムドメインの保護

If your GitHub Pages site is disabled but has a custom domain set up, it is at risk of a domain takeover. サイトが無効な間に、DNS プロバイダでカスタムドメインを設定していると、サブドメインのいずれかで誰かにサイトをホストされてしまう恐れがあります。

Verifying your custom domain prevents other GitHub users from using your domain with their repositories. If your domain is not verified, and your GitHub Pages site is disabled, you should immediately update or remove your DNS records with your DNS provider. 詳しい情報については「GitHub Pagesのカスタムドメインの検証」を参照してください。

参考リンク