GitLab Pagesカスタムドメイン

GitLab 15.4で導入されたSAMLやSCIMでプロビジョニングされたユーザーのEメール確認を回避するために認証済みドメインを使用することができます。

カスタムドメインを使うこともできます:

一つ以上のカスタムドメイン名を使用するには

カスタムドメインの設定

カスタムドメイン名でPagesを設定するには、以下の要件と手順をお読みください。

前提条件

  • 管理者がGitLab Pages カスタムドメイン用にサーバーを設定していること。
  • GitLab Pagesウェブサイトが稼働しており、デフォルトのPagesドメイン(*.gitlab.io 、GitLab.comの場合)で提供されています。
  • カスタムドメイン名example.com またはサブドメインsubdomain.example.com
  • ドメインのサーバーコントロールパネルにアクセスし、DNSレコードを設定します:
    • ドメインを GitLab Pages サーバーに向ける DNS レコード (A,ALIAS, またはCNAME)。その名前に複数の DNS レコードがある場合は、ALIAS レコードを使用する必要があります。
    • ドメインの所有権を確認するための DNSTXT レコード。

ステップ

以下の手順に従って、カスタムドメインをPagesに追加してください。DNSレコードの概要については、こちらのドキュメントも参照してください。

1.カスタムドメインの追加

GitLab Pagesにカスタムドメインを追加するには:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. 右上の[New Domain]を選択します。
  4. Domainにドメイン名を入力します。
  5. オプション。証明書]で、[Let’s Encryptを使用した証明書の自動管理]トグルをオフにして、SSL/TLS証明書を追加します。証明書と鍵は後で追加することもできます。
  6. 新しいドメインの作成]を選択します。

2.認証コードを取得

新しいドメインを Pages に追加すると、認証コードが表示されます。GitLab から値をコピーし、次のステップでTXT レコードとしてドメインのコントロールパネルに貼り付けます。

Get the verification code

3.DNSレコードの設定

PagesのDNSレコードの概要については、このドキュメントをお読みください。この話題に詳しい場合は、Pagesサイトで使用したいドメインの種類に従って、以下の手順に従ってください:

セルフマネージド・インスタンスではIPv6を設定できますが、GitLab.comのPagesでは現在IPv6は設定されていません。詳しくはこのイシューに従ってください。

ルートドメインの場合

ルートドメイン(example.com)は必須です:

よりDNSレコード
example.comA35.185.44.232
_gitlab-pages-verification-code.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff

GitLab.com 上のプロジェクトの場合、この IP は35.185.44.232 です。他のGitLabインスタンス(CEやEE)にあるプロジェクトの場合は、この情報(あなたのインスタンスで動いているPagesサーバーのIPアドレス)をシステム管理者に問い合わせてください。

DNS `A` record pointing to GitLab.com Pages server

caution
GitLab Pages ウェブサイトのためだけにルートドメインを使用し、ドメイン登録業者がこの機能をサポートしている場合、A レコードの A代わりに DNS apexCNAME レコードを追加することができます。そうすることのA 主な利点は、GitLab.com上のGitLab PagesのIPが何らかの理由で変更さ Aれたときに、レコードをA 更新する必要が Aないことです。例外はいくつかあるかもしれませんが、ルートドメインにMX レコードを設定した場合はうまくいかないことが多いので、 この方法はおすすめしません。
サブドメインの場合

サブドメイン (subdomain.example.com) が必要です:

よりDNSレコード
subdomain.example.com ALIAS/CNAME namespace.gitlab.io
_gitlab-pages-verification-code.subdomain.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff

ユーザーであろうとプロジェクトのウェブサイトであろうと、DNSレコードはパスなしであなたのPagesドメイン(namespace.gitlab.io)を指すべきです。

DNS `CNAME` record pointing to GitLab.com project

ルートとサブドメインの両方

サブドメインとルートドメインの両方を同じウェブサイトに向ける必要がある場合がいくつかあります。インスタンスンスでは、example.comwww.example.com

これらは必要です:

  • ドメインのDNSA レコード。
  • サブドメインのDNSALIAS/CNAME レコード。
  • それぞれのDNSTXT レコード。
よりDNSレコード
example.comA35.185.44.232
_gitlab-pages-verification-code.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff
www.example.comCNAMEnamespace.gitlab.io
_gitlab-pages-verification-code.www.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff

Cloudflareを使用している場合は、Redirectingwww.domain.com todomain.com with Cloudflareを確認してください。

注意事項

  • domain.com を GitLab Pages サイトに向ける場合は、CNAME レコードを使わないでください。代わりにA レコードを使ってください。
  • デフォルトの Pages ドメインの後に特別な文字を追加しないでください。例えば、subdomain.domain.comnamespace.gitlab.io/ を指定しないでください。ドメインホスティングプロバイダーによっては、末尾のドット (namespace.gitlab.io.) を要求する場合があります。
  • GitLab.comのGitLab Pages IPは2017年に変更されました
  • 2018年、GitLab.comのGitLab Pages IPが52.167.214.135 から35.185.44.232変更されました。

4.ドメインの所有権を確認

すべてのDNSレコードを追加した後、ドメインの所有者を確認します:

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. ドメイン名の横にある[Edit(編集)]を選択します。
  4. 検証ステータスで検証の再試行({retry})を選択します。

Verify your domain

ドメインがアクティビティになると同時に、ドメイン名を通じてウェブサイトが利用できるようになります。

caution
ドメイン認証が有効なGitLabインスタンスを考慮すると、ドメインが7日間認証されない場合、GitLabプロジェクトから削除されます。

注:

  • ドメイン認証はGitLab.comユーザーのために必要です。GitLabセルフマネージドインスタンスの場合、GitLab管理者はカスタムドメイン認証を無効にするオプションがあります。
  • DNSのプロパゲーションには時間がかかることがあります(最大24時間)が、通常は数分で完了します。それが完了するまで、検証は失敗し、あなたのドメインにアクセスしようとすると404になります。
  • ドメインの検証が完了したら、検証レコードをそのままにしておきます。ドメインは定期的に再検証され、レコードが削除されると無効になることがあります。

ドメインエイリアスの追加

同じプロジェクトに複数のエイリアス(カスタムドメインとサブドメイン)を追加することができます。エイリアスは、同じ部屋に通じる多くのドアがあるように理解できます。

あなたのサイトに設定したすべてのエイリアスは、設定 > Pagesにリストされています。このページから、エイリアスを表示、追加、削除することができます。

Cloudflare を使用してwww.domain.comdomain.com にリダイレクトします。

Cloudflareを使えば、www.domain.comdomain.com の両方をGitLabに追加することなく、wwwdomain.com にリダイレクトすることができます。

そのためには、CNAME レコードに関連づけられた Cloudflare のページルールを使って、www.domain.comdomain.com にリダイレクトします。次のように設定します:

  1. Cloudflareで、domain.com 35.185.44.232 を指すDNSA レコードを作成します。
  2. GitLab で、GitLab Pages にドメインを追加し、検証コードを取得します。
  3. Cloudflareで、ドメインを検証するためにDNSTXT レコードを作成します。
  4. GitLabで、ドメインを確認します。
  5. Cloudflareで、www domain.com を指すDNSCNAME レコードを作成します。
  6. Cloudflareで、www.domain.comdomain.com を指す Page Rule を追加します:
    • ドメインのダッシュボードに移動し、トップナビゲーションでPage Rulesを選択します。
    • ページルールの作成」を選択します。
    • ドメインwww.domain.com を入力し、+設定の追加を選択します。
    • ドロップダウンリストから「転送URL」を選択し、ステータスコード「301 - 恒久的なリダイレクト」を選択します。
    • 転送先URLhttps://domain.com を入力します。

PagesへのSSL/TLS証明書の追加

SSL/TLS証明書の概要については、この文書をお読みください。

GitLab Pagesでカスタムドメインをセキュリティで保護するには、以下の方法があります:

SSL/TLS証明書の手動追加

以下の条件を満たす証明書であれば、どのような証明書でも使用できます:

  • カスタムドメインでアクセス可能なGitLab Pagesウェブサイトが稼働していること。
  • PEM証明書:CAによって生成された証明書で、Certificate(PEM) フィールドに追加する必要があります。
  • 中間証明書 : (別名 「ルー ト 証明書」) 暗号化キーチ ェーンの一部であ り 、 CA を識別す る も のです。通常はPEM証明書と一緒になっていますが、手動で追加する必要がある場合もあります。Cloudflare証明書もその一つです。
  • 秘密鍵は暗号化された鍵で、PEMをドメインに対して検証します。

例えば、Cloudflare証明書はこれらの要件を満たしています。

ステップ

  • 新しいドメインを追加するときに証明書を追加するには、次の手順に従います:

    1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
    2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
    3. 右上の[New Domain]を選択します。
    4. Domainにドメイン名を入力します。
    5. 証明書]で、[Let’s Encryptを使用した証明書の自動管理]トグルをオフにして、SSL/TLS証明書を追加します。
    6. 新しいドメインの作成]を選択します。
  • 以前に追加したドメインに証明書を追加するには

    1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
    2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
    3. ドメイン名の横にある[Edit(編集)]を選択します。
    4. 証明書]で、[Let’s Encryptを使用した証明書の自動管理]トグルをオフにして、SSL/TLS証明書を追加します。
    5. 変更を保存を選択します。
  1. PEM 証明書を対応するフィールドに追加します。
  2. 証明書に中間証明書がない場合は、ルート証明書(通常、CAのウェブサイトから入手可能)をコピー&ペーストして、PEM証明書と同じフィールドにペーストします。
  3. 秘密鍵をコピーし、最後のフィールドに貼り付けます。

証明書や暗号化キーを通常のテキストエディタで開かないでください。必ずコードエディター(Sublime Text、Atom、Dreamweaver、Bracketsなど)を使用してください。

GitLab Pagesのウェブサイトを強制的にHTTPS化します。

ウェブサイト訪問者のセキュリティをさらに高めるために、GitLab PagesのHTTPS化を強制することができます。そうすることで、HTTPであなたのウェブサイトを訪問しようとするすべての試みは、301を通して自動的にHTTPSにリダイレクトされます。

GitLabのデフォルトドメインでも、カスタムドメインでも(有効な証明書を設定している限り)機能します。

この設定を有効にするには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. 左サイドバーで、[デプロイ] > [Pages]を選択します。
  3. Force HTTPS (requires valid certificates)チェックボックスを選択します。
  4. 変更を保存を選択します。

GitLab Pages の前に Cloudflare CDN を使う場合は、SSL 接続の設定をflexibleではなくfull にしてください。詳しくはCloudflare CDN の説明をご覧ください。

カスタムドメインの編集

カスタムドメインは以下のように編集できます:

  • カスタムドメインの表示
  • 追加するDNSレコードを表示します。
  • TXT検証エントリを表示します。
  • 検証を再試行します。
  • 証明書の設定を編集します。

カスタムドメインを編集するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. デプロイ > Pagesを選択します。
  3. ドメイン名の横にある[Edit(編集)]を選択します。

カスタムドメインの削除

カスタムドメインを削除すると、そのドメインはGitLabで検証されなくなり、GitLab Pagesで使用できなくなります。

カスタムドメインを削除するには

  1. 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
  2. デプロイ > Pagesを選択します。
  3. ドメイン名の横にある[削除]を選択します。
  4. プロンプトが表示されたら、[ドメインを削除]を選択します。

トラブルシューティング

ドメインの検証

ドメイン検証TXT DNSエントリーが正しく設定されていることを手動で確認するには、ターミナルで次のコマンドを実行します:

dig _gitlab-pages-verification-code.<YOUR-PAGES-DOMAIN> TXT

出力を期待します:

;; ANSWER SECTION:
_gitlab-pages-verification-code.<YOUR-PAGES-DOMAIN>. 300 IN TXT "gitlab-pages-verification-code=<YOUR-VERIFICATION-CODE>"

場合によっては、登録しようとしているドメイン名と同じドメイン名で検証コードを追加することが役立ちます。

ルートドメインの場合

よりDNSレコード
example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff
_gitlab-pages-verification-code.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff

サブドメインの場合

よりDNSレコード
www.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff
_gitlab-pages-verification-code.www.example.comTXTgitlab-pages-verification-code=00112233445566778899aabbccddeeff