カスタムドメインとSSL/TLS証明書

カスタムドメインでGitLab Pagesを設定し、SSL/TLS証明書を追加することは、GitLab Pagesのオプション機能です。

Pagesサイトで1つまたは複数のカスタムドメイン名を使用するには、以下の方法があります:

カスタムドメインによるPagesの設定

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

要件

  • GitLab Pagesウェブサイトが稼働し、デフォルトのPagesドメイン(*.gitlab.io、GitLab.comの場合)で提供されています。
  • カスタムドメイン名example.com またはサブドメインsubdomain.example.com
  • ドメインのサーバーコントロールパネルにアクセスし、DNSレコードを設定します:
    • あなたのドメインをGitLab Pagesサーバーに指すDNS AレコードまたはCNAMEレコード。
    • ドメインの所有権を確認するためのDNS TXTレコード。

ステップ

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

1. Pagesにカスタムドメインを追加します。

プロジェクトのSetting > Pagesに移動し、+ New domainをクリックすると、カスタムドメインが GitLab Pages に追加されます。 以下のいずれかを選択できます:

  • SSL/TLS証明書を追加します。
  • 空欄のままにしておいてください(後で追加できます)。

新しいドメインの作成]をクリックします。

Add new domain

2. 認証コードを取得

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

Get the verification code

3. PagesのDNSレコードの設定

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

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

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

より DNSレコード
example.com A 35.185.44.232
_gitlab-pages-verification-code.example.com TXT gitlab-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

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

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

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

ユーザーサイトであろうとプロジェクトサイトであろうと、CNAMEはあなたのPagesドメイン(namespace.gitlab.io)を指し、/project-nameは指定しないことに注意してください。

DNS CNAME record pointing to GitLab.com project

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

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

彼らは要求します:

  • ドメインのDNS Aレコード。
  • サブドメインのDNS CNAMEレコード。
  • それぞれのDNS TXTレコード。
より DNSレコード
example.com A 35.185.44.232
_gitlab-pages-verification-code.example.com TXT gitlab-pages-verification-code=00112233445566778899aabbccddeeff
www.example.com CNAME namespace.gitlab.io
_gitlab-pages-verification-code.www.example.com TXT gitlab-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年に変更されました
  • GitLab.comのGitLab Pages IPは2018年に52.167.214.135 から35.185.44.232変更されました

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

すべてのDNSレコードを追加したら、次のようにします:

  1. プロジェクトの「設定」>「Pages」に戻ってください。
  2. ドメイン名を探し、「詳細」をクリックします。
  3. 新しいドメインをアクティブにするには、[検証を再試行]ボタンをクリックします。

Verify your domain

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

注意:ドメイン検証を有効にしたGitLabインスタンスを考慮すると、ドメインが7日間検証できない場合、そのドメインはGitLabプロジェクトから削除されます。

注:

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

ドメイン検証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>"

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

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

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

Cloudflareを使用したwww.domain.com からdomain.com へのリダイレクト

Cloudflareを使っている場合は、www.domain.comdomain.com の両方をGitLabに追加しなくても、wwwdomain.comにリダイレクトすることができます。

これを行うには、CNAMEレコードに関連付けられたCloudflareのページルールを使用して、www.domain.comdomain.comにリダイレクトします。 以下の設定を使用できます:

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

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

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

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

  • GitLab PagesとLet’s Encryptインテグレーションを使うことで、PagesドメインのSSL証明書を自動的に取得・更新します。
  • 以下の手順に従って、手動でGitLab PagesウェブサイトにSSL/TLS証明書を追加してください。

要件

  • カスタムドメインでアクセスできるGitLab Pagesウェブサイトを立ち上げ、運営しています。
  • PEM 証明書:CA が生成した証明書で、Certificate(PEM)フィールドに追加する必要があります。
  • 中間証明書:(別名 “ルート証明書”)、CAを識別する暗号化キーチェーンの一部です。 通常はPEM証明書と結合されていますが、手動で追加する必要がある場合もあります。CloudFlare証明書もその一つです。
  • 秘密鍵は暗号化された鍵で、あなたのドメインに対してあなたのPEMを検証します。

ステップ

  • 新しいドメインを追加するときに証明書を追加するには、プロジェクトの「設定」>「ページ」>「新しいドメイン」に進み、ドメイン名と証明書を追加します。
  • 以前に追加したドメインに証明書を追加するには、プロジェクトの[設定]>[ページ]でドメイン名を探し、[詳細]と[編集]をクリックして証明書を追加します。

Pages project - adding certificates

  1. PEM証明書を対応するフィールドに追加します。
  2. 証明書に中間証明書がない場合は、ルート証明書(通常、CAのウェブサイトから入手可能)をコピー&ペーストして、PEM証明書と同じフィールドに貼り付けます。
  3. 秘密鍵をコピーし、最後のフィールドに貼り付けます。
注意:証明書や暗号化キーを通常のテキストエディタで開かないでください。 必ずコードエディタ(Sublime Text、Atom、Dreamweaver、Bracketsなど)を使用してください。

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

GitLab 10.7から導入されました

GitLab Pages の HTTPS 化を強制することで、HTTP 経由でウェブサイトを訪問しようとすると、301 経由で自動的に HTTPS にリダイレクトされます。

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

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

  1. プロジェクトの「設定」>「Pages」に移動します。
  2. 強制HTTPS(有効な証明書が必要)のチェックボックスにチェックを入れます。
GitLab Pagesの前でCloudFlare CDNを使用する場合は、SSL接続設定をflexibleではなく、full に設定してください。詳細はCloudFlare CDNの説明をご覧ください。